<?xml version="1.0" encoding="UTF-8" ?> <Configuration status="OFF"> <!-- Properties 模塊 : 配置一些全局的屬性值 --> <properties> <property name="LOG_HOME">/data/logs</property> <property name="APP_NAME">cb-service-user</property> <!-- PatternLayout 日誌輸出格式模板: %d:輸出日誌時間點的日期或時間,默認格式爲ISO8601,也能夠在其後指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p :輸出日誌信息的優先級,即DEBUG,INFO,WARN,ERROR,FATAL(級別從左顯示5個字符寬度)。 %M:輸出產生日誌信息的方法名。 %F:輸出日誌消息產生時所在的文件名稱。 %L:日誌輸出所在行數 日誌輸出所在行數 %t:輸出產生該日誌事件的線程名 %msg:日誌消息 %r:輸出自應用程序啓動到輸出該log信息耗費的毫秒數 %n:是換行符 %X{xxx}:輸出在ThreadContext中變量xxx的值,該值須要在ThreadContext中進行設置, service在ConsumerLogFilter和ProviderLogFilter設置; web統一在Interceptor中設置 --> <property name="CONSOLE_PATTERN_LAYOUT">[%d{HH:mm:ss.SSS}] [%-5p] [%F:%M] %msg%rEx%n</property> <property name="CONSOLE_PATTERN_LAYOUT_APP">[%d{HH:mm:ss.SSS}] [%-5p] [%F:%M:%L] [%X{MSG-NO}] [%X{TYPE}] [%X{REMOTE-HOST}:%X{REMOTE-PORT} -> %X{LOCAL-HOST}:%X{LOCAL-PORT}] %msg%rEx%n</property> <property name="PATTERN_LAYOUT">[%d] [%-5p] [%F:%M] %msg%rEx%n</property> <property name="PATTERN_LAYOUT_APP">[%d] [%-5p] [%F:%M:%L] [%X{MSG-NO}] [%X{TYPE}] [%X{REMOTE-HOST}:%X{REMOTE-PORT} -> %X{LOCAL-HOST}:%X{LOCAL-PORT}] %msg%rEx%n</property> </properties> <!-- Appenders 模塊 : 日誌輸出相關配置 --> <Appenders> <!-- 輸出到Console --> <!-- Console節點 配置控制檯日誌輸出: name:指定Appender的名字. target: SYSTEM_OUT 或 SYSTEM_ERR,通常只設置默認:SYSTEM_OUT. PatternLayout: 輸出格式,採用properties中定義的格式.--> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="${CONSOLE_PATTERN_LAYOUT_APP}" /> </Console> <!-- 輸出到滾動保存的文件 --> <RollingRandomAccessFile name="RollingRandomAccessFile" fileName="${LOG_HOME}/${APP_NAME}.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/${APP_NAME}.log.%d{yyyy-MM-dd}.%i"> <PatternLayout pattern="${PATTERN_LAYOUT_APP}" /> <Policies> <!-- TimeBasedTriggeringPolicy 經過時間策略來對log文件進行處理 interval 的值含義取決於filePattern定義的最小的時間粒度,當前爲一個月 --> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> <!--SizeBasedTriggeringPolicy 基於對log文件大小的判斷策略: 當log文件大於設定的閾值時,將觸發封存動做。 可設定的log文件大小的單位有bytes、KB、MB或GB。--> <SizeBasedTriggeringPolicy size="500 MB" /> </Policies> </RollingRandomAccessFile> <!--單獨處理ERROR級別的日誌,並把該日誌放到logs/xxx-error.log文件中 --> <RollingFile name="RollingFileError" fileName="${LOG_HOME}/${APP_NAME}-error.log" filePattern="${LOG_HOME}/error/${APP_NAME}-error.log.%i"> <!-- ThresholdFilter 過濾器: 控制檯只輸出level及以上級別的信息(onMatch),其餘的直接拒絕(onMismatch) 日誌的級別: ALL< Trace < DEBUG < INFO < WARN < ERROR < FATAL < OFF。--> <ThresholdFilter level="ERROR" /> <PatternLayout pattern="${PATTERN_LAYOUT_APP}" /> <Policies> <SizeBasedTriggeringPolicy size="500 MB" /> </Policies> </RollingFile> <!--DRUID的日誌記錄追加器 --> <RollingFile name="druidSqlRollingFile" fileName="${LOG_HOME}/${APP_NAME}-sql.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/${APP_NAME}-sql.log.%d{yyyy-MM-dd}.%i"> <PatternLayout pattern="${PATTERN_LAYOUT_APP}" /> <Policies> <SizeBasedTriggeringPolicy size="500 MB" /> <TimeBasedTriggeringPolicy /> </Policies> </RollingFile> </Appenders> <Loggers> <!-- Logger同步日誌配置,通常須要將additivity設置爲false,日誌不會重複打印不然還會在root裏面打印 --> <Logger name="com.joinpay.cb" level="DEBUG" additivity="false"> <AppenderRef ref="Console" /> <AppenderRef ref="RollingRandomAccessFile" /> <AppenderRef ref="RollingFileError" /> </Logger> <!--記錄druid-sql的記錄 AsyncLogger異步日誌配置,一樣須要將additivity設置爲false --> <AsyncLogger name="druid.sql.Statement" level="DEBUG" additivity="false"> <AppenderRef ref="Console" /> </AsyncLogger> <!-- level="INFO" 只可以輸出level級別是INFO及INFO以上的 Root日誌必須配置至關於父類日誌,level默認爲Error --> <Root level="INFO"> <AppenderRef ref="druidSqlRollingFile" level="INFO" /> </Root> </Loggers> </Configuration>