logback日志系统---logback.xml文件手动配置

来源:互联网 发布:金山卫士 源码 编辑:程序博客网 时间:2024/06/06 19:21
<?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>


0 0