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

logger4j.properties和log4j.xml的常用配置(乾貨)

背景:不介紹了,日誌對於一個專案的重要性大家都懂的;


直接上程式碼(含註釋說明)

    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>

    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>

    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

            
        //方式一:自動快速的使用Log4J預設的環境
        //        BasicConfigurator.configure();
         
                //方式二:讀取properties檔案(自定義位置),但是注意這裡檔案的載入路徑
        //        PropertyConfigurator.configure("E:/workspace-idea/study-demo/log4j-test/src/main/resources/log4j/log4j.properties");
        //        PropertyConfigurator.configure(HowUseLog4JDemo.class.getClassLoader().getResource("log4j/log4j.properties").getFile());
         
                //方式三:讀取XML檔案
        //        DOMConfigurator.configure("xxx");

相關推薦

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

Spark環境常用配置profile

... dfs already yarn XP etc for file HR # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))# and Bourne compatible s

centOS7.2防火墻常用配置

ngs proc sel reject 部分 gen commit ddr out centOS7.2防火墻常用配置 firewall-cmd --state #查看默認防火墻狀態(關閉後顯示not running,開啟後顯示running) sys

教你webpack、reactnode.js環境配置下篇

上篇我介紹了前端下webpack和react、redux等環境的配置,這篇將繼續重點介紹後臺node.js的配置。 我把所有程式碼都放到了我的github上:webpack-react-express環境配置 server 後臺這邊的配置就簡單了很多,我這裡拿node.js的exp

安裝JDKTomcat及常用命令Linux

檢視ip: -------------------------- ifconfig -a 配置網路選項 ------------------------ setup service network restart (配置完IP等必須重啟網路服務才生效) 檢視使用者登入資

Struts2控制器以及struts.xml與web.xml配置1

MVC設計模式MVC設計模式的宗旨是把一個Web應用的輸入、處理和輸出流程按照Model、View、和Controller的方式進行分離,這樣一個應用就被分成3個層:模型層、檢視層、和控制層。檢視(view):檢視代表使用者互動介面。MVC對於檢視的處理僅限於檢視中資料的採集

轉 DataSource之資料庫常用配置mybatis:一個簡單的配置

<一>,DataSource之資料庫常用配置(mybatis):一個簡單的配置 #在連線池裡的連線返回給呼叫者或連線池時,要執行的驗證 SQL 查詢 spring.datasource.validation-query=SELECT 1 #驅動的全限定類名。預設根據 URL 自動檢測

Redis服務之常用配置

  上一篇部落格聊了下redis的簡介以及redis的yum安裝和原始碼編譯安裝需要注意到問題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13378138.html;今天我們來對redis的配置檔案相關資料和配置的使用和說明;   yum安裝的redis預設版本是3

Redis服務之常用配置

  上一篇部落格我們聊了下redis的INCLUDE、NETWORK、GENERAL配置段相關配置和說明,回顧請參考:https://www.cnblogs.com/qiuhom-1874/p/13383166.html;今天我們繼續來說redis的其他配置段相關配置和說明;   SNAPSHOTTING相關

Redis服務之常用配置

  上一篇部落格我們聊了下redis的rdb持久化、安全連線、資源限制相關配置;回顧請參考:https://www.cnblogs.com/qiuhom-1874/p/13394411.html;今天我們來聊一聊redis主從複製、aof持久化、叢集、慢日誌相關配置;    REPLICATION

Spring Boot實戰筆記-- Spring常用配置Bean的初始化銷毀、Profile

div nbsp troy string 實例化 public ive work 初始 一、Bean的初始化和銷毀   在我們的實際開發的時候,經常會遇到Bean在使用之前或之後做些必要的操作,Spring對Bean的生命周期操作提供了支持。在使用Java配置和註解配置下提

Spring3 MVC 註解---註解基本配置及@controller @RequestMapping 常用解釋

nal context pac 配置 註解 com inf 如何 文件中 一:配置web.xml 1)問題:spring項目中有多個配置文件mvc.xml dao.xml 2)解決:在web.xml中 <init-par

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

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

logback logback.xml常用配置詳解 and

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

logback logback.xml常用配置詳解

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

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

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

某些免安裝版本mysql找不到my.ini的解決方案一些常用配置如mysql 5.56

忘記從哪看到的原文了,沒辦法引用真的不好意思,歡迎共同學習批評指正。 大概原因是某些版本只提供幾個備選的配置檔案供人選擇, 在這幾個中選一個改名成 my.int就好了 有的可能不行,可以多改幾個試試 像我huge就不行得用medium 順便附上一些常用ini配置

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

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

hibernate配置:propertiescfg.xml

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