需要輸出指定內容,請參見。
https://blog.csdn.net/thankna/article/details/106190036
spingboot開發用常規logback.xml配置(無需改動,放到src/main/resouces既可使用)
pom.xml加入
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.2</version>
</dependency>
logback.xml (無需改動,放到src/main/resouces既可使用)
log輸出在工程所在盤(假設工程在e:\workspaces\iij,log在e:\IIJ\log\web下)
<configuration>
<property name="LOG_HOME" value="/IIJ/log/web" />
<property name="HISTORY_HOME" value="/IIJ/log/web" />
<property name="ROOT_LEVEL" value="DEBUG" />
<property name="SYS_NAME" value="iij" />
<appender name="STDOUT1" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%t] [%X{client}] [%X{sessionId}] [%X{userId}] [%X{userAgent}] [%X{url}] %msg%n</Pattern>
</layout>
</appender>
<appender name="STDOUT2" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%t] [%X{client}] [%X{sessionId}] [%X{userId}] [%X{userAgent}] [%X{url}] %msg%n</Pattern>
</layout>
</appender>
<appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>${LOG_HOME}/${SYS_NAME}_access.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${HISTORY_HOME}/${SYS_NAME}_access.%d{yyyy-MM-dd_HH}.%i.log.gz</fileNamePattern>
<maxFileSize>500MB</maxFileSize>
<maxHistory>168</maxHistory>
<!-- <totalSizeCap>10GB</totalSizeCap> -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%t] [%X{client}] [%X{sessionId}] [%X{userId}] [%X{userAgent}] [%X{url}] %msg%n</pattern>
</encoder>
</appender>
<appender name="APP" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>${LOG_HOME}/${SYS_NAME}_app.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${HISTORY_HOME}/${SYS_NAME}_app.%d{yyyy-MM-dd_HH}.%i.log.gz</fileNamePattern>
<maxFileSize>500MB</maxFileSize>
<maxHistory>168</maxHistory>
<!-- <totalSizeCap>10GB</totalSizeCap> -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%t] [%X{client}] [%X{sessionId}] [%X{userId}] %msg%n</pattern>
</encoder>
</appender>
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>${LOG_HOME}/${SYS_NAME}_error.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${HISTORY_HOME}/${SYS_NAME}_error.%d{yyyy-MM-dd_HH}.%i.log.gz</fileNamePattern>
<maxFileSize>500MB</maxFileSize>
<maxHistory>168</maxHistory>
<!-- <totalSizeCap>10GB</totalSizeCap> -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%t] [%X{client}] [%X{sessionId}] %msg%n</pattern>
</encoder>
</appender>
<appender name="SQL_TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>${LOG_HOME}/${SYS_NAME}_sql.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${HISTORY_HOME}/${SYS_NAME}_sql.%d{yyyy-MM-dd_HH}.%i.log.gz</fileNamePattern>
<maxFileSize>500MB</maxFileSize>
<maxHistory>168</maxHistory>
<!-- <totalSizeCap>10GB</totalSizeCap> -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%t] %msg%n</pattern>
</encoder>
</appender>
<logger name="jit.wxs.demo.config.LoggingAdvicePageAccess" additivity="false">
<appender-ref ref="ACCESS"/>
<!-- <appender-ref ref="STDOUT1" /> -->
</logger>
<logger name="jit.wxs.demo.config.LoggingAdvicePageApp" additivity="false">
<appender-ref ref="APP"/>
<appender-ref ref="ERROR"/>
<!-- <appender-ref ref="STDOUT1" /> -->
</logger>
<!-- MapperのあるパッケージをDEBUGレベルに -->
<logger name="jit.wxs.demo.mapper" additivity="false">
<appender-ref ref="SQL_TRACE" />
<!-- <appender-ref ref="STDOUT2" /> -->
</logger>
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" additivity="false">
<appender-ref ref="SQL_TRACE" />
</logger>
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" additivity="false">
<appender-ref ref="SQL_TRACE" />
</logger>
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false" >
<appender-ref ref="SQL_TRACE" />
</logger>
<logger name="org.hibernate.type" level="DEBUG">
<appender-ref ref="SQL_TRACE" />
</logger>
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" additivity="false">
<appender-ref ref="SQL_TRACE" />
</logger>
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" additivity="false">
<appender-ref ref="SQL_TRACE" />
</logger>
<root level="${ROOT_LEVEL}">
<!-- <appender-ref ref="STDOUT1" /> -->
<appender-ref ref="APP"/>
<appender-ref ref="ERROR"/>
</root>
</configuration>