前言:
之前筆者一直是在System.out中打日志的,由於筆者大部分時候是編寫在tomcat容器里運行的一些個小web應用,所以這么做似乎沒什么問題:打印出來的日志都可以在tomcat自己的log目錄下的一些個日志文件里找到。但是,最近筆者接觸到一個項目,需要編寫一個不依賴於容器的能夠直接在系統上運行的socket服務器程序,使得筆者急需一個能夠打自己日志的地方,於是開始學習log4j。順便,也逼迫筆者真正的好好學習關於流、比http更為底層TCP和其對應的socket通信、多線程等知識。
正文開始
log4j目前已經發布了2.0版本,但本例子中使用的仍是最普遍使用的log4j1.2版本。
將log4j-1.2.17.jar下載並添加到項目中后,在java項目的src根目錄中添加配置文件log4j.properties
#設置級別 log4j.rootLogger=debug,appender1 #輸出到文件(這里默認為追加方式) log4j.appender.appender1=org.apache.log4j.FileAppender #設置文件輸出路徑 log4j.appender.appender1.File=C:/Users/lixin/Desktop/myproject.log #設置文件輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
然后在一個最簡單的java程序中測試這個例子: 向桌面的myproject.log中寫日志
package com.myproject.test; import org.apache.log4j.Logger; public class MyTestClass { private static Logger logger = Logger.getLogger(MyTestClass.class); public static void main(String[] args){ System.out.println("Hello world"); logger.info("----交易日志,日志級別info----->"+"hello world"+"<--------"); } }
運行,myproject.log中顯示:
[main] INFO com.myproject.test.MyTestClass - ----交易日志,日志級別info----->hello world<--------