xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!-- ****************************************************************************************** -->
<!-- ****************************** 本地开发只在控制台打印日志 ************************************ -->
<!-- ****************************************************************************************** -->
<springProfile name="local">
<!--定义日志文件的存储地址 -->
<property name="LOG_HOME" value="../logs" />
<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />
<!-- 控制台输出 -->
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----- [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
</encoder>
</appender>
<!--默认所有的包是info-->
<root level="debug">
<appender-ref ref="STDOUT"/>
</root>
<!--各个服务的包在本地执行的时候,打开debug模式,name里面写你要具体设置的包名-->
<logger name="com.app" level="debug" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
</springProfile>
<!-- ********************************************************************************************** -->
<!-- **** 放到服务器上不管在什么环境都只在文件记录日志,控制台(catalina.out)打印logback捕获不到的日志 **** -->
<!-- ********************************************************************************************** -->
<springProfile name="!local">
<!--定义日志文件的存储地址 -->
<property name="LOG_HOME" value="../logs" />
<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_HOME}/gateway.out.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<fileNamePattern>${LOG_HOME}/gateway-%d{yyyy-MM-dd}.log.%i</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
</rollingPolicy>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
</encoder>
</appender>
<!-- 生成error日志开始 -->
<appender name="ERROR-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_HOME}/err.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/gateway.err.log.%d{yyyy-MM-dd}.log.%i</fileNamePattern>
<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
命名日志文件,例如log-error-2013-12-21.0.log -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder>
<Pattern>[mts][%d{yyyy-MM-dd HH:mm:ss.sss}][%-5level] %msg %n</Pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 此日志文件只记录error级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 生成error格式日志结束 -->
<!-- 控制台输出 -->
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} --- [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
</encoder>
</appender>
<!--myibatis log configure -->
<logger name="com.apache.ibatis" level="warn">
<appender-ref ref="FILE"/>
</logger>
<logger name="java.sql.Connection" level="warn">
<appender-ref ref="FILE"/>
</logger>
<logger name="java.sql.Statement" level="warn">
<appender-ref ref="FILE"/>
</logger>
<logger name="java.sql.PreparedStatement" level="warn">
<appender-ref ref="FILE"/>
</logger>
<!-- 日志输出级别 -->
<root level="WARN">
<!-- <appender-ref ref="STDOUT" />-->
<appender-ref ref="FILE" />
<appender-ref ref="ERROR-FILE" />
</root>
</springProfile>
</configuration>
<logger name="java.sql.PreparedStatement" level="warn">
<appender-ref ref="FILE"/>
</logger>
配置具体的包输出的日志级别,不配置则按照全局默认 <root level="WARN">
application.properties中也可配置
xml
logging:
level:
com:
app:
gateway:
server:
GatewayApplication: info #全局配置warn级别,这样写就可以看到启动成功的标记,要不看不到
java.sql.PreparedStatement: info
io.netty: WARN
logger.level 的生效级别低于application.properties中的