zoukankan      html  css  js  c++  java
  • 常用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联系起来

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

  • 相关阅读:
    JavaScript构造函数学习笔记
    JavaScript面向对象编程学习笔记
    Maven学习--Maven项目目录、Maven坐标
    Maven学习--安装说明
    Watir问题---gem install watir-classic报错: ERROR: Error installing watir-classic: ERROR: Failed to build gem native extension.
    TestLink问题 —图表中文乱码
    TeskLink—增加一种需求类型(业务流程)(version1.9.8)
    Watir问题--LoadError: cannot load such file -- watir-classic
    Watir--Ruby + Watir环境安装
    Watir问题--Selenium::WebDriver::Error::WebDriverError: unexpected response, code=502, content-type="text/html"
  • 原文地址:https://www.cnblogs.com/XSdao/p/11502630.html
Copyright © 2011-2022 走看看