log4j三大件
logger、appender、layoutapache
log等级
ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF安全
log4j.logger.<PACKAGE_NAME>=<LEVEL>app
log4j.logger.<PACKAGE_NAME>.<CLASS_NAME>=<LEVEL>, <LOGGER_NAME>dom
ConsoleAppender测试
FileAppender线程
RollingFileAppender日志
RandomAccessFileAppendercode
Messagingxml
JMSAppender字符串
SMTPAppender
DB
JDBCAppender
JPAAppender
NoSQLAppender
Remote
SocketAppender
SyslogAppender
PatternLayout
HTMLLayout
XMLLayout
JSONLayout
SerializedLayout
能够用在测试环境,避免log堆积占用磁盘空间
)# Root logger option log4j.rootLogger=INFO, file # Direct log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender #Redirect to Tomcat logs folder #log4j.appender.file.File=${catalina.home}/logs/logging.log log4j.appender.file.File=C:\\logigng.log log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
%d{ABSOLUTE}
打印时间; ABSOLUTE即便用HH:mm:ss,SSS格式
%5p
打印日志级别(ERROR, DEBUG, INFO, etc.); 不满5个字符的以空格填充
%t
打印线程名
%c{1}
打印类及包名(只展现第一层);
%M
打印方法名
%L
打印行号
%m
要打印的消息
%n
换行
%highlight{pattern}{style}
给符合指定格式的添加ANSI颜色
重复log,好比dao层的exception抛出去了,还log
log的时候仍是用换行
log东西太多、太长
test当中使用log,应该使用assert更合适
异常没有log出来
使用###之类的不统一的格式
打印帐户与密码等保密信息
打印时间戳、线程名、类名、流水号、用户id
使用rolling appender+maxFileSize和maxBackupIndex
打印exception记得打印堆栈
生产环境不要打印多余东西
使用参数化,避免字符串拼接
logback或log4j2去掉enabled判断
static final 修饰
log级别要肯定好
打印上下文的值
不打印用户名密码等安全保密信息
注意系统磁盘空间+按期清理策略