java如何用LOG打印日志并输出信息到文件中
使用log4j.jar。log4j 是apache 提供的記錄日志的jar 檔。
下載地址:http://logging.apache.org/log4j/1.2/download.html
除了這個包外,還需要另一個jar包:.commons-logging.jar
下載地址:https://download.csdn.net/download/zuihongyan518/10597130
commons-logging.jar是配合log4j.jar打印輸出日志必備的jar包。
下面我們就詳述一下打印輸出日志的步驟:
首先,我們先將 準備好的兩個jar包放到項目的lib 包中(添加到項目的build path中)。?
然后,創建一個log4j.properties文件。并放入項目的根路徑下.(也可以放入其他路徑,在讀的時候需要指定)。最好就是放到項目的根路徑下
并在log4j.properties文件中添加一下配置內容:
對配置信息進行解釋:
這里指定了日志輸出的級別 INFO. 你也可以指定BEBUG、ERROR、?WARN,或者全部指定用CONSOLE
stdout, logfile 指定日志輸出的目的地。 這兩個名字可以隨便取,比如 A, 或B都可以。 實際的配置是 org.apache.log4j.ConsoleAppender 和RollingFileAppender 用于指定是控制臺還是文件。?
另外還指定了輸出的格式, 已經產生的file 的規則。
log日志文件輸出路徑可以改,我寫的是E:/logfile.log。
1.rootLogger后面跟著輸出日志的級別:
? ? ? ? ? ? ? ?1.1?ERROR 為嚴重錯誤 主要是程序的錯誤
? ? ? ? ? ? ? ?1.2 ?WARN 為一般警告,比如session丟失
? ? ? ? ? ? ? ?1.3 ?INFO 為一般要顯示的信息,比如登錄登出
? ? ? ? ? ? ? ?1.4 ?DEBUG 為程序的調試信息
stdout, logfile 指定日志輸出的目的地。 這兩個名字可以隨便取,比如 A, 或B都可以
2.appender.moder1定義的是Log輸出的地方:
? ? ? ? ? ?2.1 org.apache.log4j.ConsoleAppender(控制臺)
? ? ? ? ? ?2.2 org.apache.log4j.FileAppender(文件)
? ? ? ? ? ?2.3 org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)
? ? ? ? ? ?2.4 org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
? ? ? ? ? ?2.5 org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
3.appender.moder1.Layout定義的是日志信息的格式:
? ? ? ? ? ?3.1 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
? ? ? ? ? ?3.2 org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
? ? ? ? ? ?3.3 org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
? ? ? ? ? ?3.4 org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)
4.在appender.moder1.Layout下定義的是PatternLayout才有log4j.appender.moder1.layout.ConversionPattern
? ?該屬性自定義日志輸出格式
? ? ? ?-X號: X信息輸出時左對齊;
? ? ? ?%p: 輸出日志信息優先級,即DEBUG,INFO,WARN,ERROR,FATAL,
? ? ? ?%d: 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
? ? ? ?%r: 輸出自應用啟動到輸出該log信息耗費的毫秒數
? ? ? ?%c: 輸出日志信息所屬的類目,通常就是所在類的全名
? ? ? ?%t: 輸出產生該日志事件的線程名
? ? ? ?%l: 輸出日志事件的發生位置,相當于%C.%M(%F:%L)的組合,包括類目名、發生的線程,以及在代碼中的行數。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?舉例:Testlog4.main (TestLog4.java:10)
? ? ? %x: 輸出和當前線程相關聯的NDC(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。
? ? ? %%: 輸出一個"%"字符
? ? ? %F: 輸出日志消息產生時所在的文件名稱
? ? ? %L: 輸出代碼中的行號
? ? ? %m: 輸出代碼中指定的消息,產生的日志具體信息
? ? ? %n: 輸出一個回車換行符,Windows平臺為"\r\n",Unix平臺為"\n"輸出日志信息換行
5.Threshold是個全局的過濾器,它將把低于所設置的level的信息過濾不顯示出來。
代碼中使用:
1、代碼中使用的包:
2、定義使用log
其中SmsSendService代表你當前的類名。
最后輸出的日志信息為:
這樣就ok了。然后找到你配置的日志打印文件的目錄,你就會發現多了一個logfile.log文件。然后用超級編輯器打開所有的日志都被記錄在這個文件中。
總結
以上是生活随笔為你收集整理的java如何用LOG打印日志并输出信息到文件中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统自动登出时间设置,ssh修
- 下一篇: python代码优化指南_扣丁学堂Pyt