20200409 日誌配置文件

把項目日誌系統封裝到基礎依賴包中。

把請求日誌提交給Cat客戶端進行監控。

log4j2.xml 配置文件

xml文件,定義一些屬性,properties

log4j2.xml的配置,log4j2.xml配置文件中各項標籤的意義。

配置文件的名稱以及在項目中的存放位置;

1)2.x版本配置文件後綴名只能爲".xml",".json"或者".jsn".

2)系統選擇配置文件的優先級(從先到後),項目resoureces目錄下。

3)一般默認使用log4j2.xml進行命名;

配置文件節點解析:屬性和節點。

根節點Configuration有兩個屬性:status和monitorinterval,有兩個子節點:Appenders和Loggers(表明可以定義多個Appender和Logger).只有定義了logger並引入的appender,appender纔會生效。

tatus用來指定log4j本身的打印日誌的級別.一般生產環境使用info級別,日誌的級別。

Appenders節點,常見的有三種子節點:Console、RollingFile、File.

Console節點用來定義輸出到控制檯的Appender.

1)name:指定Appender的名字.

2)target:SYSTEM_OUT 或 SYSTEM_ERR,一般只設置默認:SYSTEM_OUT.

3)PatternLayout:輸出格式,不設置默認爲:%m%n.

File節點用來定義輸出到指定位置的文件的Appender.

1)name:指定Appender的名字.

2)fileName:指定輸出日誌的目的文件帶全路徑的文件名.

3)PatternLayout:輸出格式,不設置默認爲:%m%n.

RollingFile節點用來定義超過指定大小自動刪除舊的創建新的的Appender.

name:指定Appender的名字.

fileName:指定輸出日誌的目的文件帶全路徑的文件名.

PatternLayout:輸出格式,不設置默認爲:%m%n.

filePattern:指定新建日誌文件的名稱格式.

Policies:指定滾動日誌的策略,就是什麼時候進行新建日誌文件輸出日誌.

基於時間的滾動策略,基於指定文件大小的滾動策略。

 

Loggers節點,常見的有兩種:Root和Logger.

Appender屬於日誌處理器。

Logger節點用來單獨指定日誌的形式,比如要爲指定包下的class指定不同的日誌級別等。

程序會打印高於或等於所設置級別的日誌,設置的日誌等級越高,打印出來的日誌就越少。

不同級別的日誌寫入到不同的文件中,RollingFile結點。

過濾掉spring和mybatis的一些無用的DEBUG信息。

 

使用Slf4j集成Log4j2構建項目日誌系統;使用slf4j可以很好的保證我們的日誌系統具有良好的兼容性,兼容當前常見幾種日誌系統

slf4j核心包,log4j2核心包,與slf4j保持橋接

 

一般不是使用slf4j的配置文件麼? 統一使用日誌門面的還是日誌實現的?一般使用日誌門面的配置文件。

日誌如何每天進行分頁?每天創建一個文件夾。

log日誌顯示的默認格式

日誌輸出級別,這個修改是如何影響你的代碼運行的?

日誌配置文件裏面是什麼? 日誌的顯示格式,如何分頁等?

爲什麼要關注顯示格式?

 

Kibana是爲Elasticsearch設計的開源分析和可視化平臺。你可以使用 Kibana 來搜索,查看存儲在 Elasticsearch索引中的數據並與之交互。你可以很容易實現高級的數據分析和可視化,以圖標的形式展現出來.所有的log數據全部存儲在ES上面。

 

https://www.cnblogs.com/new-life/p/9246143.html

 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" monitorInterval="30">
    <properties>
        <property name="logPath" value="${sys:LOG_PATH:-/opt/tomcat-log}"/>
        <property name="logPatternLayout"
                  value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%t] %class{36}.%M - %msg%xEx%n"/>
        <property name="logRolloverSize" value="100M"/>
        <property name="logKeepDays" value="15d"/>
        <property name="logDirNumberOfFiles" value="300"/>
    </properties>

    <Appenders>
        <!--CONSOLE-->
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
        </Console>

        <!--TRACE-->
        <RollingFile name="TRACE" filename="${logPath}/trace.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/trace-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="debug" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/trace*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--DEBUG-->
        <RollingFile name="DEBUG" filename="${logPath}/debug.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/debug-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/debug*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--INFO-->
        <RollingFile name="INFO" filename="${logPath}/info.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/info-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/info*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--WARN-->
        <RollingFile name="WARN" filename="${logPath}/warn.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/warn-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/warn*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--ERROR-->
        <RollingFile name="ERROR" filename="${logPath}/error.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/error-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/error*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <CatAppender name="CatAppender"/>
    </Appenders>

    <Loggers>
        <Root level="INFO">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="TRACE"/>
            <appender-ref ref="DEBUG"/>
            <appender-ref ref="INFO"/>
            <appender-ref ref="WARN"/>
            <appender-ref ref="ERROR"/>
            <appender-ref ref="CatAppender"/>
        </Root>
          
        <Logger name="org.apache.catalina.startup.DigesterFactory" level="error"/>
                
        <Logger name="org.apache.catalina.util.LifecycleBase" level="error"/>
                
        <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn"/>
                
        <logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
                
        <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn"/>
                
        <Logger name="org.crsh.plugin" level="warn"/>
                
        <logger name="org.crsh.ssh" level="warn"/>
                
        <Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error"/>
                
        <Logger name="org.hibernate.validator.internal.util.Version" level="warn"/>
                
        <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="warn"/>
                
        <logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
                
        <logger name="org.thymeleaf" level="warn"/>
    </Loggers>
</Configuration>

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章