Springbootログ[log 4 j 2+slf 4 j]
SpringBootログ
SpringbootはCommons Loggingを使用してすべての内部ログ記録を行いますが、下位実装は依然として開いています.Java Util Logging,Log 4 J 2,Logbackのデフォルト構成を提供します.ログ記録には、デフォルトでLogbackを使用します
説明する
重大なエラー・イベントごとにアプリケーションが終了することを示します.
エラーイベントが発生しても、システムの継続に影響しないことを示します.
潜在的なエラーが発生することを示します.エラー情報ではない情報もありますが、プログラマーにヒントを与えます.
メッセージは、太さレベルでアプリケーションの実行プロセスを強調します.興味のある情報や重要な情報を印刷します.これは、本番環境でプログラムが実行する重要な情報を出力するために使用できますが、乱用したり、ログを印刷したりすることはできません.
パーティクル情報イベントは、主に開発中に実行情報を印刷するために使用されるアプリケーションのデバッグに非常に役立つことを示します.
スタック情報を追跡し、粒度が細すぎて、具体的な問題を調べるときに使用します.
ロググループ
関連するレコーダをグループ化することは、通常、それらを同時に構成できるように役立ちます.
Spring Bootには、以下の事前定義されたログ・レコード・グループが含まれています.
名前
レコーダ
ネットワーク
sql
propertiesファイルでグループをカスタマイズできます
定義:
ymlで使用する:
カスタムログ設定
Springbootデフォルトログ構成情報:
春の環境
システムのプロパティ
コメント
異常時に使用する変換字を記録します.
定義すると、デフォルトのログ構成で使用されます.
最大ログ・ファイル・サイズ(LOG_FILEが有効な場合).(デフォルトのLogback設定のみがサポートされています.)
保存するアーカイブログファイルの最大数(LOG_FILEが有効な場合).(デフォルトのLogback設定のみがサポートされています.)
定義すると、デフォルトのログ構成で使用されます.
コンソールで使用されるログ・モード(stdout).(デフォルトのLogback設定のみがサポートされています.)
日付フォーマットの追加モードを記録します.(デフォルトのLogback設定のみがサポートされています.)
ファイルで使用されるログ・モード(
ログ・レベルを表示するときに使用されるフォーマット(デフォルト
現在のプロセスID(可能であり、OS環境変数として定義されていない場合は発見されます).
log 4 J 21の使用
log 4 J 2デフォルト使用プロファイル名は
発生する可能性のある問題
ログの構成:https://cloud.tencent.com/developer/article/1383491、XML構成の詳細:https://www.cnblogs.com/keeya/p/10101547.html ↩︎
SpringbootはCommons Loggingを使用してすべての内部ログ記録を行いますが、下位実装は依然として開いています.Java Util Logging,Log 4 J 2,Logbackのデフォルト構成を提供します.ログ記録には、デフォルトでLogbackを使用します
:springboot , , , , log4j2 > log4j *10 , 。
ログ・レベル
説明する
FATAL
重大なエラー・イベントごとにアプリケーションが終了することを示します.
ERROR
エラーイベントが発生しても、システムの継続に影響しないことを示します.
WARN
潜在的なエラーが発生することを示します.エラー情報ではない情報もありますが、プログラマーにヒントを与えます.
INFO
メッセージは、太さレベルでアプリケーションの実行プロセスを強調します.興味のある情報や重要な情報を印刷します.これは、本番環境でプログラムが実行する重要な情報を出力するために使用できますが、乱用したり、ログを印刷したりすることはできません.
DEBUG
パーティクル情報イベントは、主に開発中に実行情報を印刷するために使用されるアプリケーションのデバッグに非常に役立つことを示します.
TRACE
スタック情報を追跡し、粒度が細すぎて、具体的な問題を調べるときに使用します.
ロググループ
関連するレコーダをグループ化することは、通常、それらを同時に構成できるように役立ちます.
Spring Bootには、以下の事前定義されたログ・レコード・グループが含まれています.
名前
レコーダ
ネットワーク
org.springframework.core.codec
, org.springframework.http
, org.springframework.web
, org.springframework.boot.actuate.endpoint.web
, org.springframework.boot.web.servlet.ServletContextInitializerBeans
sql
org.springframework.jdbc.core
, org.hibernate.SQL
propertiesファイルでグループをカスタマイズできます
定義:
logging.group.tomcat = org.apache.catalina,org.apache.coyote,org.apache.tomcat
ymlで使用する:
logger:
level:
tomcat: trace
カスタムログ設定
Springbootデフォルトログ構成情報:
春の環境
システムのプロパティ
コメント
logging.exception-conversion-word
LOG_EXCEPTION_CONVERSION_WORD
異常時に使用する変換字を記録します.
logging.file
LOG_FILE
定義すると、デフォルトのログ構成で使用されます.
logging.file.max-size
LOG_FILE_MAX_SIZE
最大ログ・ファイル・サイズ(LOG_FILEが有効な場合).(デフォルトのLogback設定のみがサポートされています.)
logging.file.max-history
LOG_FILE_MAX_HISTORY
保存するアーカイブログファイルの最大数(LOG_FILEが有効な場合).(デフォルトのLogback設定のみがサポートされています.)
logging.path
LOG_PATH
定義すると、デフォルトのログ構成で使用されます.
logging.pattern.console
CONSOLE_LOG_PATTERN
コンソールで使用されるログ・モード(stdout).(デフォルトのLogback設定のみがサポートされています.)
logging.pattern.dateformat
LOG_DATEFORMAT_PATTERN
日付フォーマットの追加モードを記録します.(デフォルトのLogback設定のみがサポートされています.)
logging.pattern.file
FILE_LOG_PATTERN
ファイルで使用されるログ・モード(
LOG_FILE
が有効な場合).(デフォルトのLogback設定のみがサポートされています.)logging.pattern.level
LOG_LEVEL_PATTERN
ログ・レベルを表示するときに使用されるフォーマット(デフォルト
%5p
).(デフォルトのLogback設定のみがサポートされています.)PID
PID
現在のプロセスID(可能であり、OS環境変数として定義されていない場合は発見されます).
log 4 J 21の使用
log 4 J 2デフォルト使用プロファイル名は
log4j2-spring.xml
です.そうしないと、application.yml
にログ構成情報 xml
を追加する必要があります.log4J2.xml
<configuration monitorInterval="5">
<Properties>
<property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<property name="FILE_PATH" value=" " />
<property name="FILE_NAME" value=" " />
Properties>
<appenders>
<console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
console>
<File name="Filelog" fileName="${FILE_PATH}/test.log" append="false">
<PatternLayout pattern="${LOG_PATTERN}"/>
File>
<RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="10MB"/>
Policies>
<DefaultRolloverStrategy max="15"/>
RollingFile>
<RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="10MB"/>
Policies>
<DefaultRolloverStrategy max="15"/>
RollingFile>
<RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="10MB"/>
Policies>
<DefaultRolloverStrategy max="15"/>
RollingFile>
appenders>
<loggers>
<logger name="org.mybatis" level="info" additivity="false">
<AppenderRef ref="Console"/>
logger>
<Logger name="org.springframework" level="info" additivity="false">
<AppenderRef ref="Console"/>
Logger>
<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="Filelog"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
root>
loggers>
configuration>
log4J2.yml
Configuration:
status: warn
monitorInterval: 30
Properties: #
Property: # ( )。 VM , :
# :-Dlog.level.console=warn -Dlog.level.xjj=trace
# :-Dlog.level.console=warn -Dlog.level.xjj=info
- name: log.level.console
value: info
- name: log.path
value: log
- name: project.name
value: opendoc
- name: log.pattern
value: "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n"
Appenders:
Console: #
name: CONSOLE
target: SYSTEM_OUT
PatternLayout:
pattern: ${log.pattern}
#
RollingFile:
- name: ROLLING_FILE
fileName: ${log.path}/${project.name}.log
filePattern: "${log.path}/historyRunLog/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
PatternLayout:
pattern: ${log.pattern}
Filters:
# ,
ThresholdFilter:
- level: warn
onMatch: DENY
onMismatch: NEUTRAL
- level: info
onMatch: ACCEPT
onMismatch: DENY
- level: debug
onMatch: ACCEPT
onMismatch: DENY
Policies:
TimeBasedTriggeringPolicy: #
modulate: true
interval: 1
DefaultRolloverStrategy: # 100
max: 100
#
- name: PLATFORM_ROLLING_FILE
ignoreExceptions: false
fileName: ${log.path}/platform/${project.name}_platform.log
filePattern: "${log.path}/platform/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
PatternLayout:
pattern: ${log.pattern}
Policies:
TimeBasedTriggeringPolicy: #
modulate: true
interval: 1
DefaultRolloverStrategy: # 100
max: 100
#
- name: BUSSINESS_ROLLING_FILE
ignoreExceptions: false
fileName: ${log.path}/bussiness/${project.name}_bussiness.log
filePattern: "${log.path}/bussiness/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
PatternLayout:
pattern: ${log.pattern}
Policies:
TimeBasedTriggeringPolicy: #
modulate: true
interval: 1
DefaultRolloverStrategy: # 100
max: 100
#
- name: EXCEPTION_ROLLING_FILE
ignoreExceptions: false
fileName: ${log.path}/exception/${project.name}_exception.log
filePattern: "${log.path}/exception/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
ThresholdFilter:
level: error
onMatch: ACCEPT
onMismatch: DENY
PatternLayout:
pattern: ${log.pattern}
Policies:
TimeBasedTriggeringPolicy: #
modulate: true
interval: 1
DefaultRolloverStrategy: # 100
max: 100
# DB
- name: DB_ROLLING_FILE
ignoreExceptions: false
fileName: ${log.path}/db/${project.name}_db.log
filePattern: "${log.path}/db/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
PatternLayout:
pattern: ${log.pattern}
Policies:
TimeBasedTriggeringPolicy: #
modulate: true
interval: 1
DefaultRolloverStrategy: # 100
max: 100
Loggers:
Root:
level: info
AppenderRef:
- ref: CONSOLE
- ref: ROLLING_FILE
- ref: EXCEPTION_ROLLING_FILE
Logger:
- name: platform
level: debug
additivity: false
AppenderRef:
- ref: CONSOLE
- ref: PLATFORM_ROLLING_FILE
- name: bussiness
level: debug
additivity: false
AppenderRef:
- ref: BUSSINESS_ROLLING_FILE
- name: exception
level: debug
additivity: true
AppenderRef:
- ref: EXCEPTION_ROLLING_FILE
- name: db
level: info
additivity: false
AppenderRef:
- ref: DB_ROLLING_FILE
#
# Logger: # com.xjj Log ,
# - name: com.xjj
# additivity: false
# level: ${sys:log.level.xjj}
# AppenderRef:
# - ref: CONSOLE
# - ref: ROLLING_FILE
pom.xml
追加する構成:<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-loggingartifactId>
exclusion>
exclusions>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-apiartifactId>
<version>1.7.7version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-log4j2artifactId>
dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformatgroupId>
<artifactId>jackson-dataformat-yamlartifactId>
dependency>
mybatis sql
システム構成ファイルに参加する必要があります.mybatis:
typeAliasesPackage: com.gcs.storecommon.pojo #
mapperLocations: classpath*:*/mybatis-mapper/*.xml,classpath*:mybatis-mapper/*.xml # xml
#configuration mybatis springboot ,
configuration:
log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl
発生する可能性のある問題
logger
:jarパッケージが競合しているため、pomファイルにどのような依存があるかどうかをチェックし、log4j
を削除すればいいです.ログの構成:https://cloud.tencent.com/developer/article/1383491、XML構成の詳細:https://www.cnblogs.com/keeya/p/10101547.html ↩︎