您的位置:首页 > 其它

logback+slf4j日志使用简单入门例子

2014-09-11 19:43 337 查看
logback+slf4j日志使用简单入门例子
现而今,很多项目的日志使用logback+slf4j,从而替换了log4j日志的使用。。。。
使用所需的相关jar包:slf4j-api-1.6.0.jar,logback-core-1.0.6.jar,logback-classic-1.0.6.jar.
在程序中启用logback步骤:
1:配置logback环境,也即加载以上三个jar包(注意jar包版本的话需要匹配,否则会报jar包版本不匹配问题)----此时注意要是想打印日志到每个文件夹目录下面,需要配置logback.xml配置文件(其位置应该位于classpath下面)。
2:在每个需要之行记录的类里面,调用org.slf4j.LoggerFactory.getLogger()方法得到Logger对象.
3:调用Logger对象实例的打印方法,也即debug(),info(),warn(),error(),把记录输出到配置里面的各个appender(注意,此时打印日志的级别由logback.xml配置文件中
<root level="DEBUG"><appender-ref ref="file" /></root>配置的level等级来决定)

logback.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">//scanPeriod 配置档配置文件改动时候自动更新时间
<appender name="file"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/logs/logback.log</file>//指定日志输出到硬盘的目录
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/xxx.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
                     <span style="font-family:SimSun;">//打印日志输出的格式</span>
<span style="font-family:SimSun;">                     </span><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} -%msg%n</pattern>
</layout>
</appender>
//设置Logger打印的等级  <span style="color:#FF6666;"><!-- 若是需要打印mybatis的sql语句,slf4j内部以实现只需要把level等级设为debug即可 --></span>
<root level="DEBUG">
<appender-ref ref="file" /><span style="font-family:SimSun;">//与上面配置的appender name对应</span>
</root>
</configuration>
Logback.java 类如下

package com.clark.logback;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Logback {

private static Logger logger = LoggerFactory.getLogger(Logback.class);

public static void main(String[] args) {
logger.info("-------start use logback--------");

System.out.println("=====start======");

System.out.println("=====end======");

<span style="font-family:SimSun;">               </span> logger.info("-------end use logback--------");
}
}
之行main函数之后console台输出:

18:58:45,265 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
18:58:45,265 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
18:58:45,265 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/E:/Eclipse_Kepler_J2EE_Workspace/Logback/build/classes/logback.xml]
18:58:45,421 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
18:58:45,421 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeFilter scanning period to 30 seconds
18:58:45,421 |-INFO in ReconfigureOnChangeFilter{invocationCounter=0} - Will scan for changes in [[E:\Eclipse_Kepler_J2EE_Workspace\Logback\build\classes\logback.xml]] every 30 seconds.
18:58:45,421 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Adding ReconfigureOnChangeFilter as a turbo filter
18:58:45,453 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
18:58:45,453 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [file]
18:58:45,578 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use zip compression
18:58:45,578 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use the pattern logs/xxx.%d{yyyy-MM-dd}.log for the active file
18:58:45,593 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern 'logs/xxx.%d{yyyy-MM-dd}.log.zip'.
18:58:45,593 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight.
18:58:45,593 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Sun Sep 14 18:58:45 CST 2014
18:58:45,640 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - This appender no longer admits a layout as a sub-component, set an encoder instead.
18:58:45,640 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
18:58:45,640 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
18:58:45,640 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[file] - Active log file name: /logs/logback.log
18:58:45,640 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[file] - File property is set to [/logs/logback.log]
18:58:45,640 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG
18:58:45,640 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [file] to Logger[ROOT]
18:58:45,656 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
18:58:45,656 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@22ed4b - Registering current configuration as safe fallback point

=====start======
=====end======
查看输出到本地的日志文件如下:

2014-09-14 18:58:45.671 [main] INFO  com.clark.logback.Logback --------start use logback--------
2014-09-14 18:58:45.671 [main] INFO  com.clark.logback.Logback --------end use logback--------


注意:

当我们项目中没有logback.xml配置打印日志文件的时候,会自动寻找配置文件logback.groovy,logback-test.xml(开发环境),logback.xml(生产环境).若是以上三个文件都找不到的话,会将相应的日志打印到console控制台.

参考博客:http://aub.iteye.com/blog/1103685
http://aub.iteye.com/blog/1101260 http://aub.iteye.com/blog/1110008
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: