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級別要肯定好
打印上下文的值
不打印用戶名密碼等安全保密信息
注意系統磁盤空間+按期清理策略