日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

log4j.properties自定義日志配置

作者:xinlianluohan 更新時間: 2023-12-15 編程語言

一、通用的寫法

log4j.properties


# 設置root logger等級為ALL,且appender有A1和FILE
log4j.rootLogger=ALL, A1,A3

#設置com.example.test logger
log4j.logger.com.example.test=DEBUG,A1,A3
# 取消繼承父類
log4j.additivity.com.example.test=false

# 設置個控制臺輸出源,該appender名叫:A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n


#設置個文件輸出源,該appender名叫:FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.file=D:/logs/log4j.log
log4j.appender.FILE.append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n


#設置個文件輸出源(滾動文件輸出源,按照文件大小重新生成臨時文件),該appender名叫:A2
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.file=D:/logs/log4j.log
log4j.appender.A2.append=true
#maxFileSize  文件最大大小,超過會將舊的數據放在臨時文件,新的日志繼續打印在file指定的文件名中
log4j.appender.A2.maxFileSize=1
#maxBackupIndex  文件最大備份數,默認為1
log4j.appender.A2.maxBackupIndex=10
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n



#設置個文件輸出源(滾動文件輸出源,按照日期重新生成臨時文件),默認按照天分割日志,該appender名叫:A3
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.file=D:/logs/log4j.log
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

測試代碼

package com.example.test;

import java.io.PrintWriter;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Layout;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.spi.LoggingEvent;
import org.junit.Test;

public class TestLog4j {

    private static final Logger logger = Logger.getLogger(TestLog4j.class);
    
    @Test
    public void testLog4j() {
        // 日志級別 
        logger.fatal("fatal"); // 嚴重錯誤,一般會造成系統崩潰 和終止運行 
        logger.error("error"); // 錯誤信息,但不會影響系統運行 
        logger.warn("warn"); // 警告信息,可能會發生問題 
        logger.info("info"); // 程序運行信息,數據庫的連接、網 絡、IO操作等 
        logger.debug("debug"); // 調試信息,一般在開發階段使 用,記錄程序的變量、參數等 
        logger.trace("trace"); // 追蹤信息,記錄程序的所有流程 信息
    }
}

測試結果

二、Log4j如何屏蔽某個類的日志打印

Log4j屏蔽某個類的日志打印

項目中使用的是log4j.properties的方式配置,在項目啟動后有一個任務每隔半小時會運行,查不到數據的時候會打印warn級別的日志,由于數量太多想屏蔽該類日志的打印。

網上查找了方法,可以通過設置log4j.logger.xxx=ERROR(xxx代表需要屏蔽的類,ERROR代表該類只打印error及以上級別的日志,如log4j.logger.java.sql.Connection=ERROR)來屏蔽

于是在項目中設置log4j.logger.org.search.DataSearch=ERROR后重啟項目卻發現不起作用,后來經過測試,發現xxx設置成包名log4j.logger.org.search=ERROR就成功了。

注:

  • log4j默認日志級別all<trace<debug<info<warn<error<fatal<off

Log4j屏蔽指定日志

log4j.logger.org.springframework=OFF

log4j.logger.org.apache.struts2=OFF

log4j.logger.com.opensymphony.xwork2=OFF

log4j.logger.com.ibatis=OFF

log4j.logger.org.hibernate=OFF

注:

  • log4j.logger.xxx=error

  • xxx:表示要屏蔽的類

三、Logger.getLogger(字符串)用法

log4j中的Logger.getLogger()可以不用加載一個類,也可以傳字符串的,這是一種通用做法,比如

Logger logger = Logger.getLogger("com.MyLog");

logger.info("...");

那么Logger首先會去找log4j.properties中的log4j.category.com.MyLog對應的Appender來寫日志,當然如果你配置了rootAppender的話不用配其他的Appender也沒關系。

原文鏈接:https://gaodengwen.blog.csdn.net/article/details/128735915

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新