簡述:php
添加logger的日誌輸出,下面是配置信息供備忘html
步驟:
java
1. 在Maven的porn.xml 文件中添加dependency以下web
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency>
以後就會添加三個包,apache
2. 以後在項目下添加log4j.propertiestomcat
項目路徑以下,服務器
log4j.propertiesapp
#config root logger log4j.rootLogger = INFO,system.out log4j.appender.system.out=org.apache.log4j.ConsoleAppender log4j.appender.system.out.layout=org.apache.log4j.PatternLayout log4j.appender.system.out.layout.ConversionPattern=MINAServer Logger-->%5p{%F:%L}-%m%n #config this Project.file logger log4j.logger.thisProject.file=INFO,thisProject.file.out log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender log4j.appender.thisProject.file.out.File=logContentFile.log log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout
3. 在代碼中添加this
private static final Logger logger = LoggerFactory.getLogger(MINAServer.class);
接下來就能輸出了,spa
logger.info("now {}" , "starting server");
輸出以下:
若是要輸出logger文件:
log4j.rootLogger=INFO,R,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File=../logs/log log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n
下面是log4j.properties的配置信息,在此要感謝前輩提供的資源
#輸出格式#%m 輸出代碼中指定的消息#%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL#%r 輸出自應用啓動到輸出該log信息耗費的毫秒數#%c 輸出所屬的類目,一般就是所在類的全名#%t 輸出產生該日誌事件的線程名#%n 輸出一個回車換行符,Windows平臺爲「\r\n」,Unix平臺爲「\n」#%d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也能夠在其後指定格式,好比:%d{yyyy MMM dd HH:mm:ss,SSS},輸出相似:2002年10月18日 22:10:28,921#%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java:10)格式化例子:log4j.appender.thisProject.file.out.layout.ConversionPattern=log4j-->%d{yyyy MMM dd HH:mm:ss,SSS}%5p{%F\:%L}-%m%n注意:1.信息格式化的小知識 這些參數中間可能會參雜一些數字好比:%5p它的意思就是在輸出此參數以前加入多少個空格,還有就是裏面的「\」的做用是轉義字符2.log4j.properties文件放置位置 (1)在java project項目中,它放置的位置是在項目的根目錄下而不是在項目的src目錄下。 (2)在javaweb項目中它放置的位置是在src目錄下,由於這個時候tomcat會去默認的加載它的,不須要咱們去手動的加載log4j的配置文 件,只須要根據配置獲取本身須要的logger實例便可,由此咱們能夠知道若是咱們使用的不是tomcat容器的話,是否是須要本身手動加載或者至少要配 置一下呢?好比使用Websphere等非apache服務器。3.對於java web項目裏面的日誌的位置配置 (1)若是是要指定日誌文件的位置爲D盤下的log.txt文件。 log4j.appender.thisProject.file.out.File=d:\\log.txt (2)若是指定日誌文件的位置爲當前的tomcat的工做目錄下的某個文件 log4j.appender.thisProject.file.out.File=${catalina.home}/logs/logs_tomcat.log4.log4j的加載機制 log4j.properties加載機制?其實log4j.properties只是log4j的配置文件。程序啓動時,log4j組件去讀 log4j.properties,和讀取普通配置文件沒多大區別。獲取用戶配置的一些log4j的屬性值,調用想應該的方法爲log4j屬性設置。 把log4j.properties看成一個struts.xml或者一個hibernate-cfg.xml就能夠了。但不一樣的是,log4j不像 struts和hibernate,它不是一個獨立的組件,無法本身完成初始化,通常都是什麼組件須要它 就去初始化。好比,hibernate默認的日誌組件就是log4j,在hibernate初始化的時候它會去初始化log4j。若是你沒配置 log4j.properties,hibernate會拋出異常,但仍是能夠正常初始化。