Spring整合Log4j和Slf4j
阿新 • • 發佈:2019-02-18
Log4j的整合
Spring專案中整合Log4j
1. 下載好log4j的jar包(例如:log4j-1.2.11.jar)
2. web.xml
<!--log4j配置檔案載入--> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <!--啟動一個watchdog執行緒每1800秒掃描一下log4j配置檔案的變化--> <!-- log4j 配置掃描重新整理間隔 可以不用 --> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>1800000</param-value> </context-param> <!--spring log4j監聽器--> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
只配置listener也可以
3. log4j.properties
日誌的主配置檔案
log4j.rootLogger=info,stdout,debug,error log4j.logger.org.springframework=info #log4j.logger.org.springframework.web=debug log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.logger.info=info log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold = INFO log4j.appender.info.append=true log4j.appender.info.File=${catalina.home}/logs/log4j/info.log log4j.appender.warn.File=${catalina.home}/logs/log4j/warn.log log4j.logger.debug=debug log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender log4j.appender.debug.layout=org.apache.log4j.PatternLayout log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.debug.datePattern='.'yyyy-MM-dd log4j.appender.debug.Threshold = DEBUG log4j.appender.debug.append=true log4j.appender.debug.File=${catalina.home}/logs/log4j/debug.log log4j.logger.warn=warn log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.warn.datePattern='.'yyyy-MM-dd log4j.appender.warn.Threshold = DEBUG log4j.appender.warn.append=true log4j.logger.error=error log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold = ERROR log4j.appender.error.append=true log4j.appender.error.File=${catalina.home}/logs/log4j/error.log
程式碼中寫入日
private static final Logger logger = LoggerFactory.getLogger(XXX.class);
logger.info(“XXXX”);
logger.warn(“XXXX”);
logger.error(“XXXX”);
Slf4j的整合
Slf4j不是一個真正的日誌實現,而是一個抽象層,它允許我們在後臺使用任意一個日誌類庫。所以以後更換為其它日誌工具時,只要修改配置檔案,不用修改程式碼,所以開源框架常用到Slf4j。
spring 4預設是不依賴slf4j的,只依賴common logging.
整合好Log4j之後就可直接使用Slf4j了
1. 加入slf4j的jar包
2. 配置同上Log4j的配置
即整合好Log4j之後就可直接使用Slf4j了。
使用:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
private static final Logger logger = LoggerFactory.getLogger(User.class);