Java日志打印方法


一、使用log4j打印日志

1. 下載log4j.jar和commons-logging.jar。
    log4j.jar下載地址:http://logging.apache.org/log4j/1.2/download.html
    commons-logging.jar 下載地址: https://download.csdn.net/download/zuihongyan518/10597130
2.准備好的兩個jar包放到項目的lib 包中(添加到項目的build path)。方法:右鍵單擊項目→選擇“屬性”→Java Build Path→Add External JARs。
3.src路徑下創建一個log4j.properties文件。創建方法: 右鍵單擊src New File ,輸入文件名。
Java日志打印方法
4. 在log4j.properties文件中添加以下配置內容:
Java日志打印方法

對配置信息進行解釋

這里指定了日志輸出的級別 INFO. 你也可以指定BEBUGERROR 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: 輸出日志信息優先級,即DEBUGINFOWARNERRORFATAL,

       %d: 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd       HH:mm:ss,SSS},輸出類似:20021018 221028921

       %r: 輸出自應用啟動到輸出該log信息耗費的毫秒數

       %c: 輸出日志信息所屬的類目,通常就是所在類的全名

       %t: 輸出產生該日志事件的線程名

       %l: 輸出日志事件的發生位置,相當於%C.%M(%F:%L)的組合,包括類目名、發生的線程,以及在代碼中的行數。 舉例:Testlog4.main (TestLog4.

      %x: 輸出和當前線程相關聯的NDC(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。

      %%: 輸出一個"%"字符

      %F: 輸出日志消息產生時所在的文件名稱

      %L: 輸出代碼中的行號

      %m: 輸出代碼中指定的消息,產生的日志具體信息

      %n: 輸出一個回車換行符,Windows平台為"\r\n"Unix平台為"\n"輸出日志信息換行

5. Threshold是個全局的過濾器,它將把低於所設置的level的信息過濾不顯示出來。

代碼中使用

1. 代碼中使用的包:  import org.apache.log4j.Logger;
2. 定義使用log:private Logger log=Logger.getLogger(當前類名.class);
3. 輸出:
    log.info("this is info:"+s);
    log.error("this is error:"+s);
    log.debug("this is debug:"+s);
 
二、AppendContentToFile追加寫入日志
1. 在項目中新建一個類,類名:AppendContentToFile。內容如下:
import java.io.RandomAccessFile;
public class AppendContentToFile {
// 追加寫入
public static void Awrite(String fileName, String content) {
try {
// 打開一個隨機訪問文件流,按讀寫方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 文件長度,字節數
long fileLength = randomFile.length();
// 將寫文件指針移到文件尾。
randomFile.seek(fileLength);
randomFile.write((content+"\r\n").getBytes());
//randomFile.write(content.getBytes());
//System.out.println(new String(randomFile.readLine().getBytes("ISO-8859-1"), "utf-8"));// 需要重新轉碼才能正常顯示
randomFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. 調用
   AppendContentToFile.Awrite("E:\\log.txt","打印內容");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM