Springbootログ[log 4 j 2+slf 4 j]


SpringBootログ
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 ↩︎