<?xml version
="1.0" encoding
="UTF-8"?>
<configuration scan
="true" scanPeriod
="60 seconds" debug
="false">
<contextName>logback
</contextName
>
<!-- 控制台输出
-->
<appender name
="CONSOLE" 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} - %msg
%n
</pattern
>
<charset>UTF
-8</charset
>
</encoder
>
</appender
>
<!-- 系统错误日志文件
-->
<appender name
="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只打印ERROR级别的日志
-->
<filter
class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR
</level
>
<onMatch>ACCEPT
</onMatch
>
<onMismatch>DENY
</onMismatch
>
</filter
>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名
-->
<fileNamePattern>./logs
/error_log
/%d
{yyyy
-MM
-dd
}/error
.%d
{yyyy
-MM
-dd
}.%i
.log
</fileNamePattern
>
<!--日志文件保留天数
-->
<maxHistory>15</maxHistory
>
<maxFileSize>100MB
</maxFileSize
>
</rollingPolicy
>
<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} - %msg
%n
</pattern
>
<charset>UTF
-8</charset
>
</encoder
>
</appender
>
<!-- 自己打印的日志文件,用于记录重要日志信息
-->
<appender name
="MY_INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,打印INFO级别的日志
-->
<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>./logs
/info_log
/%d
{yyyy
-MM
-dd
}/info
.%d
{yyyy
-MM
-dd
}.%i
.log
</fileNamePattern
>
<!--日志文件保留天数
-->
<maxHistory>15</maxHistory
>
<maxFileSize>100MB
</maxFileSize
>
</rollingPolicy
>
<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} - %msg
%n
</pattern
>
<charset>UTF
-8</charset
>
</encoder
>
</appender
>
<!-- 开发测试环境下的日志配置 和test1配置文件有关
-->
<!--spring。active
.profile的对应值关联
-->
<springProfile name
="test1">
<root level
="INFO">
<!--CON这个是控制台输出,就是test1配置文件后,控制台有输出
-->
<appender
-ref ref
="CONSOLE" />
<appender
-ref ref
="SYSTEM_FILE" />
<appender
-ref ref
="MY_INFO_FILE" />
</root
>
</springProfile
>
<!-- 生产环境下的日志配置 关联到prod即正式的配置文件
-->
<springProfile name
="prod">
<root level
="INFO">
<appender
-ref ref
="SYSTEM_FILE" />
<appender
-ref ref
="MY_INFO_FILE" />
</root
>
</springProfile
>
</configuration
>
logback-spring.xml
上面的配置文件能够在服务器上实时动态打印日志,方便调试线上的bebug本地上跑的话,使用test1的配置文件时可以控制台打印日志而如果使用prod正式的配置文件,则不能打印,原因看两者配置区别
有什么问题,可以留言共同探讨