<?xml version="1.0" encoding="UTF-8"?>
<!-- logback日志系统基础配置 -->
<!-- 1.此处debug="true"与logger level无关,只与配置的状态信息有关(如配置文件是否规范,某些标签元素属性是否赋值) -->
<!-- 3.此处scan="true"设置后,可以扫描本日志配置文件变动并重加载配置,可设置扫描间隔时间,默认为1分钟扫描一次,单位milliseconds, seconds, minutes 或 hours,如scanPeriod="30 seconds" -->
<!-- 4.此处packagingData="true"可以在日志后看到依赖jar包名和版本,很费性能,不建议开启 -->
<configuration debug="true" scan="true" scanPeriod="30 seconds" packagingData="false">
<!-- 2.安装OnConsoleStatusListener与1中debug="true"等价,意为强制输出配置状态信息,可选其一 。 -->
<!-- <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
<!--注册以下servlet可以通过访问http://host/yourWebapp/lbClassicStatus查看logback的状态管理信息-->
<servlet>
<servlet-name>ViewStatusMessages</servlet-name>
<servlet-class>ch.qos.logback.classic.ViewStatusMessagesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ViewStatusMessages</servlet-name>
<url-pattern>/lbClassicStatus</url-pattern>
</servlet-mapping>
</servlet>
<!--以下是完善后的详细配置-->
<?xml version="1.0" encoding="UTF-8"?>
<!-- logback日志系统基础配置 -->
<!-- 1.此处debug="true"与logger level无关,只与配置的状态信息有关(如配置文件是否规范,某些标签元素属性是否赋值) -->
<!-- 3.此处scan="true"设置后,可以扫描本日志配置文件变动并重加载配置,可设置扫描间隔时间,默认为1分钟扫描一次,单位milliseconds, seconds, minutes 或 hours,如scanPeriod="30 seconds" -->
<!-- 4.此处packagingData="true"可以在日志后看到依赖jar包名和版本,很费性能,不建议开启 -->
<configuration debug="true" scan="true" scanPeriod="30 seconds" packagingData="false">
<!-- 2.安装OnConsoleStatusListener与1中debug="true"等价,意为强制输出配置状态信息,可选其一 。 -->
<!-- <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> -->
<!-- 5.可以添加属性,使用时如:${USER_HOME},或者启动命令行设置属性:java -DUSER_HOME="/home/sebastien" MyApp -->
<!-- <property name="USER_HOME" value="/home/sebastien" /> -->
<!-- 6.如需用到多个属性,可指定属性配置文件路径,配置文件被读取后会在本地域定义属性,就可以使用了 -->
<!-- <property file="src/main/java/chapters/configuration/variables1.properties" /> -->
<!-- 7.也可以指定类路径下的属性配置文件 -->
<!-- <property resource="resource1.properties" /> -->
<!-- 8.指定属性域类型:local-本地域,context-上下文域,system-JVM系统域,默认为local,指定为context可在所有日志事件中使用该属性,甚至通过序列化后发送到远程主机的事件。 -->
<!-- <property scope="context" name="nodeId" value="firstNode" /> -->
<!-- 9.HOSTNAME主机名称属性在上下文域配置中自动定义,CONTEXT_NAME上下文名称属性和当前日志上下文名称关联 -->
<!-- 10.时间戳 -->
<!-- <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/> -->
<!-- 11.从JNDI中获取env-entries作为属性值使用,如下设置即可使用${CONTEXTNAME}了 -->
<!-- <insertFromJNDI env-entry-name="java:comp/env/appName" as="appName" /> -->
<!-- <contextName>${appName}</contextName> -->
<timestamp key="byMonth" datePattern="yyyyMM"/>
<timestamp key="byDay" datePattern="yyyyMMdd"/>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<!-- 根据时间戳属性将文件按月按日分开管理 -->
<file>${user.dir}/server/log/${byMonth}/myApp-${byDay}.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<!-- 输出com.fy包及其子包下的日志到文件,如果加了additivity="false",只会输出到文件,不会输出到其它父级appender -->
<logger name="com.fy" level="DEBUG" additivity="false">
<appender-ref ref="FILE"/>
</logger>
<!-- 输出所有日志到控制台 -->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>