常用logback.xml配置详解

选择logback的理由

logbacklog4j的简单对比一下:
1.首先,对于同样的代码路径,logback使用起来更快。
2.logback原生实现了log4j的api,而log4j中间还需要一个转换层。
3.有更丰富的文档,支持xml的和group的配置。
4.对配置文件的在项目启动中,可以热加载。
5.可以自动对日志进行归档,可以对日志进行归档,可以自动压缩日志成为归档文件。
6.支持更多的过滤器和参数化输出。

操作

1.引入依赖xml

		<!-- logback -->
				    <dependency>
				      <groupId>ch.qos.logback</groupId>
				      <artifactId>logback-core</artifactId>
				      <version>1.1.8</version>
				    </dependency>
				    <dependency>
				      <groupId>ch.qos.logback</groupId>
				      <artifactId>logback-classic</artifactId>
				      <version>1.1.8</version>
				    </dependency>
				    <dependency>
				      <groupId>org.slf4j</groupId>
				      <artifactId>slf4j-api</artifactId>
				      <version>1.7.22</version>
				    </dependency>

2.创建logback.xml

			<?xml version="1.0" encoding="UTF-8"?>
			<configuration scan="true" scanPeriod="60 seconds">
			
			    <!--日志输入到控制台-->
			    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
			        <encoder>
			            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
			        </encoder>
			    </appender>
			
			    <!--<appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
			    <!--<file>${catalina.home}/logs/permission.log</file>-->
			    <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
			    <!--<FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>-->
			    <!--</rollingPolicy>-->
			    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
			    <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>-->
			    <!--</layout>-->
			    <!--</appender>-->
			    <!---->
			    <!--<logger name="xxx" level="INFO">-->
			    <!--<appender-ref ref="permission"/>-->
			    <!--</logger>-->
			
			    <!-- TRACE < DEBUG < INFO < WARN < ERROR -->
			    <root level="INFO">
			        <appender-ref ref="STDOUT" />
			    </root>
			
			</configuration>

注:
configuration里面定义参数:scan、scanPeriod等
1.scan="true" 配置文件发生改变时会重新加载。
2.scanPeriod设置时间间隔,当为scan="true"时才会生效 。
例如:scanPeriod="60 seconds"

3.appender:日志输出形式,可以定义多个 。
STDOURT :标准化输出 class="ch.qos.logback.core.ConsoleAppender" :控制台输出
标准日志格式输出:

		 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		        <encoder>
		            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
		        </encoder>
		    </appender>

解释:
%d{yyyy-MM-dd HH:mm:ss.SSS}:时间
[%thread]:进程
%-5level:级别从做显示5个宽度
%logger:日志名称
%msg%:具体的msg

自定义名字和路径记录日志:

		 <appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">
		    <file>${catalina.home}/logs/permission.log</file>
		    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
		    <FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
		    </rollingPolicy>
		    <layout class="ch.qos.logback.classic.PatternLayout">
		    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
		    </layout>
		    </appender>

解释:

  1. <file>${catalina.home}/logs/permission.log</file>代表路径在Catalina.home的文件夹下面的logs文件夹下面打印出日志permission.log的日志。
    2.其他的与上面相似

4.logger:日志,可以是类名,也可以是其他、名称,最后返回appender输出。
5.root:只能有一个,日志的级别:从小到大的排序:TRACE < DEBUG < INFO < WARN < ERROR

		<root level="INFO">
		        <appender-ref ref="STDOUT" />
		    </root>

与appender联系起来

这是我在项目中碰见的,所以就当做个笔记,如果有用,大家可以看看,没有用就算了吧。

posted on 2019-09-10 20:14  xsDao  阅读(1072)  评论(0编辑  收藏  举报