logback日志组件的配置和使用

来源:互联网 发布:淘宝店铺不显示导航栏 编辑:程序博客网 时间:2024/06/05 17:28

1. logback介绍

Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

2. maven依赖

    <!-- logback+slf4j -->      <dependency>          <groupId>org.slf4j</groupId>          <artifactId>slf4j-api</artifactId>          <version>1.6.0</version>          <type>jar</type>          <scope>compile</scope>      </dependency>      <dependency>          <groupId>ch.qos.logback</groupId>          <artifactId>logback-core</artifactId>          <version>0.9.28</version>          <type>jar</type>      </dependency>      <dependency>          <groupId>ch.qos.logback</groupId>          <artifactId>logback-classic</artifactId>          <version>0.9.28</version>          <type>jar</type>      </dependency>  

如果你没有使用maven,那么你自己去下载jar包吧...

3. 配置和使用

1. 日志使用

我们使用org.slf4j.LoggerFactory,就可以直接使用日志了。

    protected final Logger       logger = LoggerFactory.getLogger(this.getClass());  

使用:

@Controller  @RequestMapping(value = "")  public class IndexController extends BaseController {        /**      * Success      * @param response      * @throws IOException      */      @RequestMapping(value = "")      @ResponseBody      public void hello(HttpServletResponse response) throws IOException {          logger.debug("DEBUG TEST 这个地方输出DEBUG级别的日志");          logger.info("INFO test 这个地方输出INFO级别的日志");          logger.error("ERROR test 这个地方输出ERROR级别的日志");      }    } 

2. 在控制台输出特定级别的日志

logback的配置文件都放在/src/main/resource/文件夹下的logback.xml文件中。其中logback.xml文件就是logback的配置文件。只要将这个文件放置好了之后,系统会自动找到这个配置文件。

下面的配置中,我们输出特定的ERROR级别的日志:

    <?xml version="1.0"?>      <configuration>                <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->          <appender name="console" class="ch.qos.logback.core.ConsoleAppender">              <encoder>                  <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>              </encoder>          </appender>                <!-- 日志级别 -->          <root>              <level value="error" />              <appender-ref ref="console" />          </root>            </configuration>   


结果只在控制台输出ERROR级别的日志。


3. 设置输出多个级别的日志

    <?xml version="1.0"?>      <configuration>                <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->          <appender name="console" class="ch.qos.logback.core.ConsoleAppender">              <encoder>                  <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>              </encoder>          </appender>                <!-- 日志级别 -->          <root>              <level value="error" />              <level value="info" />              <appender-ref ref="console" />          </root>            </configuration>   


设置两个level,则可以输出 ERROR和INFO级别的日志了。


4. 设置文件日志

    <?xml version="1.0"?>      <configuration>                <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->          <appender name="console" class="ch.qos.logback.core.ConsoleAppender">              <encoder>                  <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n                  </pattern>              </encoder>          </appender>                <!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出 -->          <appender name="file"              class="ch.qos.logback.core.rolling.RollingFileAppender">              <Encoding>UTF-8</Encoding>              <File>/home/test.log</File>              <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                  <FileNamePattern>/home/test-%d{yyyy-MM-dd}.log                  </FileNamePattern>                  <MaxHistory>10</MaxHistory>                  <TimeBasedFileNamingAndTriggeringPolicy                      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                      <MaxFileSize>5MB</MaxFileSize>                  </TimeBasedFileNamingAndTriggeringPolicy>              </rollingPolicy>              <layout class="ch.qos.logback.classic.PatternLayout">                  <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n                  </pattern>              </layout>          </appender>                <!-- 日志级别 -->          <root>              <!-- 定义了ERROR和INFO级别的日志,分别在FILE文件和控制台输出 -->              <level value="error" />              <level value="info" />              <appender-ref ref="file" />               <appender-ref ref="console" />          </root>          <!--精确设置每个包下面的日志-->        <logger name="com.xxx" additivity="false">              <level value="info" />              <appender-ref ref="file" />              <appender-ref ref="console" />          </logger></configuration>

详细参考:http://logback.qos.ch/manual/configuration.html

0 0
原创粉丝点击