1. 程式人生 > >logger4j.properties和log4j.xml的常用配置

logger4j.properties和log4j.xml的常用配置

轉自 https://my.oschina.net/hebad/blog/322578

1.1、log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!--
       * 1. 一個appender子元素定義一個日誌輸出目的地
       * 2. 一個logger子元素定義一個日誌寫出器
    -->
    <!-- catalina.out -->
    <appender name="consoleAppend" class="org.apache.log4j.ConsoleAppender" >
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%5p][%t][%c{1}]-[%M] %m%n" />
        </layout>
    </appender>

    <!-- error log -->
    <appender name="errorAppend" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${webapp.root}/logs/error/error.html" />
        <param name="Append" value="true" />
        <param name="DatePattern" value="yyyy-MM-dd-HH-mm'.html'"/>
        <param name="MaxBackupIndex" value="10" />
        <param name="MaxFileSize" value="4000000" />
        <param name="encoding" value="utf-8"/>
        <layout class="org.apache.log4j.HTMLLayout">
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="ERROR" />
            <param name="LevelMax" value="ERROR" />
        </filter>
    </appender>

    <!-- biz -->
    <appender name="bizAppend" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${webapp.root}/logs/biz/biz.log" />
        <param name="Append" value="true" />
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'" />
        <param name="MaxBackupIndex" value="10" />
        <param name="MaxFileSize" value="4096" />
        <param name="encoding" value="utf-8"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[date:%d{yyyy-MM-dd HH:mm:ss}] %m%n" />
        </layout>
        <filter class="com.raycloud.bizlogger.LoggerFilter">
            <param name="LevelMin" value="40050" />
            <param name="LevelMax" value="40050" />
        </filter>
    </appender>

    <!-- 消費者消費的訊息記錄 -->
    <appender name="taskExcutorAppend" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${webapp.root}/logs/excutor/excutor.log" />
        <!-- 每小時1個檔案 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'" />
        <!-- 最大檔案的size,單位:Kb,Mb... -->
        <param name="MaxFileSize" value="4096" />
        <!-- 重啟了伺服器之後,是否在原有檔案的後面追加?true(預設):追加;false:不追加 -->
        <param name="Append" value="true"/>
        <!-- 預設 MaxBackupIndex 為 1 -->
        <param name="MaxBackupIndex" value="10" />
        <param name="Encoding" value="utf-8"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%5p] %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="WARN" />
        </filter>
    </appender>

    <!-- ProcessHandler的日誌 -->
    <appender name="processHandlerAppend" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${webapp.root}/logs/process/process.log" />
        <!-- 每小時1個檔案 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'" />
        <!-- 最大檔案的size,單位:Kb,Mb... -->
        <param name="MaxFileSize" value="4096" />
        <!-- 重啟了伺服器之後,是否在原有檔案的後面追加?true(預設):追加;false:不追加 -->
        <param name="Append" value="true"/>
        <!-- 預設 MaxBackupIndex 為 1 -->
        <param name="MaxBackupIndex" value="10" />
        <param name="Encoding" value="utf-8"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%5p] %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="WARN" />
        </filter>
    </appender>

    <!-- command node js的日誌 -->
    <appender name="nodejsAppend" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${webapp.root}/logs/command/nodejs.log" />
        <!-- 每小時1個檔案 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'" />
        <!-- 最大檔案的size,單位:Kb,Mb... -->
        <param name="MaxFileSize" value="4096" />
        <!-- 重啟了伺服器之後,是否在原有檔案的後面追加?true(預設):追加;false:不追加 -->
        <param name="Append" value="true"/>
        <!-- 預設 MaxBackupIndex 為 1 -->
        <param name="MaxBackupIndex" value="10" />
        <param name="Encoding" value="utf-8"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%5p] %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="WARN" />
        </filter>
    </appender>
    <!-- command ffmpeg的日誌 -->
    <appender name="ffmpegAppend" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${webapp.root}/logs/command/ffmpeg.log" />
        <!-- 每小時1個檔案 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'" />
        <!-- 最大檔案的size,單位:Kb,Mb... -->
        <param name="MaxFileSize" value="4096" />
        <!-- 重啟了伺服器之後,是否在原有檔案的後面追加?true(預設):追加;false:不追加 -->
        <param name="Append" value="true"/>
        <!-- 預設 MaxBackupIndex 為 1 -->
        <param name="MaxBackupIndex" value="10" />
        <param name="Encoding" value="utf-8"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%5p] %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="WARN" />
        </filter>
    </appender>

    <!--
        logger的作用:
        1.[name屬性]:指定你定義Logger物件時候的name
        2. additivity : children-logger是否使用 rootLogger的配置,
           additivity在log4j預設為true。這解釋了為什麼有些時候,一個日誌資訊在螢幕上會有多次輸出。
        3.還可以指定level(輸出級別)、appender-ref(指定哪個append)
     -->
    <!-- loggers -->
    <logger name="com.raycloud.picture.task.consumer.PictureVideoTaskExcutor" additivity="true">
        <!-- 如果1個包想對應多個 Appender 就這樣,對於每個Appender自定義的日誌級別可以在Appender上加上filter -->
        <appender-ref ref="taskExcutorAppend" />
    </logger>
    <logger name="com.raycloud.picture.task.handle.impl.DefaultVideoProcessorHandleImpl" additivity="true">
        <appender-ref ref="processHandlerAppend" />
    </logger>
    <logger name="com.raycloud.picture.service.command.NodeJsCommandInvoke" additivity="true">
        <appender-ref ref="nodejsAppend" />
    </logger>
    <logger name="com.raycloud.picture.service.command.FfmpegCommandInvoke" additivity="true">
        <appender-ref ref="ffmpegAppend" />
    </logger>

    <!--
        root的作用(相當於全域性的意思):
        1.[priority ]:指定預設的全域性輸出級別
        2.[appender-ref ]:指定一些預設的append(沒有指出特殊包或者類,即那些沒有指定<logger>元素的append)的輸出;
    -->
	<root>
		<priority value="INFO" />
        <!-- 將 logger 中 additivity=true 的日誌或者沒有指定<logger>的append輸出到控制檯 -->
        <appender-ref ref="consoleAppend" />
        <!-- 將全域性的 error 日誌輸出到error檔案中 -->
		<appender-ref ref="errorAppend" />
        <appender-ref ref="bizAppend" />
    </root>

</log4j:configuration>

1.2、log4j.xml在web.xml中的配置

<!-- log4j -->
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j-server.xml</param-value>
    </context-param>
    <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>3000</param-value>
    </context-param>
    <!-- 先開啟Log4J,再去啟動spring等一些你需要的東西,有助於報錯時日誌的輸出 -->
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

2.1 log4j.properties配置

####################################################
# 將日誌按照包分類輸出的配置檔案
####################################################

#根針對所有的日誌包
log4j.rootLogger = debug , appendConsole
#下面兩個配置是指定包的特殊處理,針對兩個指定的日誌級別,如果不指定的話則使用父日誌記錄器(rootLogger)的,指定了就覆蓋掉了父日誌記錄器的
#設定dao包的日誌配置
log4j.logger.com.xun.log4j.dao = debug, appendDao
#設定service包的日誌配置
log4j.logger.com.xun.log4j.service = info, appendService


#控制檯的配置
log4j.appender.appendConsole = org.apache.log4j.ConsoleAppender
#Threshold:設定此appender的日誌級別,這裡會覆蓋全域性的(rootLogger中)定義的日誌級別
log4j.appender.appendConsole.Threshold = error
#設定日誌輸出編碼方式為UTF-8,如果不指定,會以當前執行作業系統的編碼方式記錄
log4j.appender.appendConsole.encoding = UTF-8
log4j.appender.appendConsole.layout = org.apache.log4j.SimpleLayout

#appendDao配置
log4j.appender.appendDao = org.apache.log4j.FileAppender
log4j.appender.appendDao.layout = org.apache.log4j.PatternLayout
log4j.appender.appendDao.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss}]--[%t] [%p] -%l -%m%n%n
log4j.appender.appendDao.Append = false
log4j.appender.appendDao.File = e:/test/log4j/dao.txt

#appendService
log4j.appender.appendService = org.apache.log4j.FileAppender
log4j.appender.appendService.layout = org.apache.log4j.PatternLayout
log4j.appender.appendService.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss}]--[%t] [%p] -%l -%m%n%n
log4j.appender.appendService.Append = false
log4j.appender.appendService.File = e:/test/log4j/service.txt

相關推薦

logger4j.propertieslog4j.xml常用配置(乾貨)

背景:不介紹了,日誌對於一個專案的重要性大家都懂的; 直接上程式碼(含註釋說明)     log4j.xml的                        <?xml version="1.0" encoding="UTF-8"?>         <

logger4j.propertieslog4j.xml常用配置

轉自 https://my.oschina.net/hebad/blog/3225781.1、log4j.xml<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYST

log4j.propertieslog4j.xml配置檔案的配置示例

log4j.properties日誌檔案的配置一般放在src源目錄下就可以了,下面是具體的配置示例: ### direct log messages to stdout ### log4j.appe

hibernate配置:propertiescfg.xml

properties 是模版型配置, 可以配置一些用xml寫起來麻煩的東西, 比如連線池,事務等..xml的配置是在前面配置的基礎上的再配置, 主要是配一些 mapping檔案..在原始碼裡,  Configuration cfg = new Configuration()

SSM的XMLWEB.XML配置

erl 視圖 核心 contex select 3.0 agg oct eth 顯示層(handler/controller):   request請求到springmvc的前端控制器,從處理器映射器找相應的handler(用@RequestMapping(" ")標註,

logback logback.xml常用配置詳解(一)<configuration> and <logger>

配置文件 cti 原創文章 分類 lis ali 配置 默認值 原創 摘自:http://aub.iteye.com/blog/1101260logback logback.xml常用配置詳解(一)<configuration> and <logger&

log4j.xml簡單配置樣例說明

一:測試環境與log4j(一)——為什麼要使用log4j?一樣,這裡不再重述   二:老規矩,先來個栗子,然後再聊聊感受 (1)這裡栗子有一點特別呀!給出了包名唉!想必有用,是的,配置檔案中要特別說明一下的 package test.log4j.test8; import

web.xml 常用配置——持續更新

頁面歡迎頁設定 <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <welcome-file-list> <

log4j.xml配置多個輸出檔案

現在的專案中,對於日誌的配置,我們有時候需要配置對應不同的輸出日誌檔案,例如按照模組劃分,按照功能劃分,分別輸出到不同的日誌檔案中,下面介紹一下,怎麼配置不同的輸出日誌檔案。 下面是一整塊的log4j.xml配置。如果對怎麼配置spring 和 log4j不瞭解的話,可以參

Struts 2.5.17 web.xmlstruts.xml預設配置

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/

logback logback.xml常用配置詳解(一) and

部落格分類:  Log 詳細整理了logback常用配置, 不是官網手冊的翻譯版,而是使用總結,旨在更快更透徹的理解其配置 logback 中文手冊 (官網手冊的翻譯版,在這裡向中文版譯者-陳華,說聲辛苦啦) logback 配置詳解(

logback logback.xml常用配置詳解(二)

logback 常用配置詳解(二) <appender> <appender>: <appender>是<configuration>的子節點,是負責寫日誌的元件。 <appender>有兩個必要屬

SpringBoot的propertiesyml兩種配置方式, 配置注入引數, 以及配置檔案讀取失效的問題

SpringBoot支援兩種配置方式,一種是properties檔案,一種是yml 首先在pom檔案中新增依賴: <dependency> <groupId>org.springframework.boot</gro

maven中pom.xml常用配置

pom.xml 該檔案用於管理:原始碼、配置檔案、開發者的資訊和角色、問題追蹤系統、組織資訊、專案授權、專案的url、專案的依賴關係等等。 1.1 基本內容 1.1.1 modelVersion 寫明pom版本,一般都是4.0.0 1.1.2

關於SSM的配置檔案Web.xml配置

首先宣告:此文章只代表我個人的立場 關於SSM的配置檔案好多種配置方法 我只舉其一. 博主用到的SSM版本如下: spring 4.3.6 mybatis-3.2.3 資料來源用的第三方c3p0 配置檔案一般情況是上邊(不排除有些人把springs

logback.xml常用配置

一、logback的介紹      Logback是由log4j創始人設計的又一個開源日誌元件。logback當前分成三個模組:logback-core,logback- classic和logback-access。logback-core是其它兩個模組的基礎模組。logback-classic是log4

log4j.xml 基本配置

1      簡介        一般log4j的xml配置方式基本步驟有3個,第一步:配置appender;第二步:配置logger;第三步:配置root。下面配置一個ConsoleAppender和兩個DailyRollingFileAppender為例具體展開。 1.

log4j.xml 簡單配置 列印 mybatis 執行的 sql 語句

網上的資料眼花繚亂 , 因為太詳細所以懶得看,下面我就說最簡單的方式,也是專案中常常使用的方式!1)下載jar包<dependency><groupId>log4j</groupId><artifactId>log4j</

Maven簡介(一)——Maven的安裝settings.xml配置

轉載: 1       Maven的安裝        安裝Maven之前要確保已經安裝好了jdk,並且配置好了環境變數JAVA_HOME。具體安裝步驟如下: 1.     從apache網上下載maven專案的壓縮包。下載地址為:http://maven.apach

log4j.xml簡單配置實現在控制檯列印sql執行語句

先上配置程式碼! <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!--控制檯輸出sql執行過程--> <appender name="CO