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配置文件如下:
注意:
当我们项目中没有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
现而今,很多项目的日志使用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
相关文章推荐
- Flexpaper二次开发入门教程》(十) Flexpaper简单使用-第一个Flexpaper例子
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- 在Kotlin中使用Dagger2最简单的入门例子
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- log4j编写日志 简单入门(基本足够开发中使用)
- 【Echarts】百度Echarts的使用入门+两个简单的小例子+心得
- 地图入门(一):Android上使用Google Maps加标注的最最简单的例子
- 使用makefile的简单例子
- MagicAjax.Net的使用要点和简单例子
- PHP中使用XML-RPC构造Web Service简单入门
- Linux下,使用C/C++编写"静态链接库"的一个简单例子
- Spring 入门(一个简单的例子)
- Log4j日志管理系统简单使用说明
- 使用日志钩子实现键盘消息勾挂的例子
- 简单的使用.NET非对称加密算法的例子
- 简单的使用.NET对称加密的例子
- PHP中使用XML-RPC构造Web Service简单入门
- VB Api简单入门(5) -3721网络实名SDK的开发例子
- 在MFC下使用OpenGL的一个简单的例子