<?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,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>原文链接:https://www.f2er.com/xml/294386.html