MDCからログ管理構成
17653 ワード
MDCとは何ですか.
初めてMDCに触れて、とても輪をかぶっています.インポートされたパッケージimport orgを見てみましょう.slf4j.Logger;import org.slf4j.LoggerFactory;import org.slf4j.MDC;ログ管理に関連していることは明らかです.
slf 4 jでよく使われるログインタフェースはどれらがありますか?trace、debug、info、warn、error、さらにMDC.
最も一般的なログ管理では、次のような方法が使用されます.
private static final Logger log = LoggerFactory.getLogger(クラス名.class);
log.info();
log.debug();
log.trace();
MDC.put()メソッドは、log 4 j 2を介してログ出力機能を提供する.xmlのlayout構成%X{}でログを取得できます.この方法は非常に柔軟です.
ユーザーが任意のオブジェクトをログ管理できるようにします.
アプリケーションのログ管理の構成方法
ログの出力形式:%X{logId},[%-5 level],%d{yyyy-MM-dd HH:mm:ss.SSS},%t,%c{1}:%msg%n解析:%X{logId}----MDCに対してput()メソッド. [%-5 level]----ログのレベル %d{yyyy-MM-dd HH:mm:ss.SSS}---時間フォーマット %t-----スレッド %c{1}---クラス名 %msg---メッセージ %n------改行 プロファイルを参照
初めてMDCに触れて、とても輪をかぶっています.インポートされたパッケージimport orgを見てみましょう.slf4j.Logger;import org.slf4j.LoggerFactory;import org.slf4j.MDC;ログ管理に関連していることは明らかです.
slf 4 jでよく使われるログインタフェースはどれらがありますか?trace、debug、info、warn、error、さらにMDC.
最も一般的なログ管理では、次のような方法が使用されます.
private static final Logger log = LoggerFactory.getLogger(クラス名.class);
log.info();
log.debug();
log.trace();
MDC.put()メソッドは、log 4 j 2を介してログ出力機能を提供する.xmlのlayout構成%X{}でログを取得できます.この方法は非常に柔軟です.
ユーザーが任意のオブジェクトをログ管理できるようにします.
アプリケーションのログ管理の構成方法
ログの出力形式:%X{logId},[%-5 level],%d{yyyy-MM-dd HH:mm:ss.SSS},%t,%c{1}:%msg%n解析:
xml version="1.0" encoding="UTF-8"?>
<configuration>
<properties>
<property name="PATTERN">
%X{logId},[%-5level],%d{yyyy-MM-dd HH:mm:ss.SSS},%t,%c{1}: %msg%n
property>
<property name="BASE_PATH">
/applog/xxxlog
property>
<property name="APP_NAME">
xxx-core
property>
<property name="LOG_FILE_NAME">
${BASE_PATH}/${APP_NAME}.log
property>
<property name="LOG_FILE_PATTERN">
${BASE_PATH}/${APP_NAME}_%d{yyyyMMddHHmm}-%i.log
property>
properties>
<DynamicThresholdFilter key="traceOpen" defaultThreshold="ERROR" onMatch="ACCEPT"
onMismatch="NEUTRAL">
<KeyValuePair key="yes" value="trace" />
DynamicThresholdFilter>
<appenders>
<RollingFile name="rollingFileLog" filename="${LOG_FILE_NAME}" filePattern="${LOG_FILE_PATTERN}"
append="true">
<Filters>
level (onMatch), (onMismatch)
Filters>
<PatternLayout pattern="${PATTERN}" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="20 MB" />
Policies>
<DefaultRolloverStrategy max="50">
<Delete basePath="${BASE_PATH}/" maxDepth="2">
<IfFileName glob="${APP_NAME}_*.log" />
<IfLastModified age="7d" />
<IfAny>
<IfAccumulatedFileSize exceeds="2 GB" />
<IfAccumulatedFileCount exceeds="100" />
IfAny>
Delete>
DefaultRolloverStrategy>
RollingFile>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${PATTERN}" />
Console>
appenders>
<loggers>
<logger name="CoreframeInteractiveLogger" level="info" additivity="true">
<AppenderRef ref="interactiveAppender" />
logger>
<logger name="CoreframeServiceMetricsLogger" level="info" additivity="true">
<AppenderRef ref="serviceMetricsAppender" />
logger>
<logger name="coreframe" level="info" />
<logger name="Service" level="debug" />
<logger name="" level="debug" />
<logger name="test" level="trace" />
<logger name="" level="trace" />
<root level="info">
<AppenderRef ref="console" />
<AppenderRef ref="rollingFileLog" />
root>
loggers>
configuration>