Java日志-Slf4J

Java日志-Slf4J

sf2gis@163.com

2015年11月10日

 

1 目标:使用统一的日志API操作日志,绑定不同的实现包完成实际的日志操作。

2 原理:slf4j.jar作为统一的api,调用其它的impl包作为底层实现。

3 流程:安装库,配置日志,输出日志

3.1 安装库:安装Slf4J的api库,安装Log4J2的Slf4j实现库,安装Log4J2的功能库,并添加到ClassPath。

3.1.1下载Slf4J,解压后将安装api库:

Slf4J的api库:slf4j-api-1.7.12.jar

3.1.2超载Log4J2,解压后安装实现库和功能库

log4J2的Slf4J实现库:log4j-slf4j-impl-2.4.1.jar

log4J2的功能库:log4j-api-2.4.1.jar,log4j-core-2.4.1.jar。

3.2 配置日志:使用Log4J2的配置方式。

可以省略,但会给出报错误警告。

3.3 输出日志:使用Slf4J的统一接口。

//Main.java

packagelee;

 

importorg.slf4j.Logger;

 

publicclass Main {

 

      public static void main(String[] args) {

           // TODO Auto-generated method stub

           Logger logger =LoggerFactory.getLogger("root");

           logger.error("this iserror");

           logger.info("this isinfo.");

      }

}

4 方法

只是调用方法使用slf4j,其它操作完全与log4j2相同。

参考:http://www.slf4j.org/manual.html

http://logging.apache.org/log4j/2.x/log4j-slf4j-impl/index.html

http://my.oschina.net/kenshiro/blog/185513

4.1 配置文件:log4j2的配置文件

参见:Java日志-Log4j2.docx

4.2 输出日志:使用程序输出日志,与log4j2类似。

4.2.1日志管理对象:LogFactory,管理日志对象组织和其它选项。

4.2.2日志对象:Logger,控制日志的输出等。

示例:

           Logger logger =LoggerFactory.getLogger("root");

           logger.error("this iserror");

5 示例:输出控制台、文件,滚动文件日志。

 

//log4j2.xml

<?xmlversion="1.0" encoding="UTF-8"?>

<configuration>

      <appenders>

           <Console name="console"target="SYSTEM_OUT">

                 <PatternLayout

                      pattern="msg=%m~File=%F~Line=%L~Method=%M~Console~%d{yyyyMMM dd HH:mm:ss,SSS}%n" />

           </Console>

           <File name="log"fileName="target/test.log" append="true">

                 <PatternLayout

                      pattern="%d{DEFAULT}~%levelclass:%C line:%L method:%M - %m%xEx%n" />

           </File>

           <RollingFilename="dailyrolling" fileName="logs/app.log"

                 filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">

                 <PatternLayout>

                      <Pattern>msg=%m~File=%F~Line=%L~Method=%M~Console~%d{yyyyMMM dd

                            HH:mm:ss,SSS}%n</Pattern>

                 </PatternLayout>

                 <Policies>

                      <TimeBasedTriggeringPolicy/>

                      <SizeBasedTriggeringPolicysize="20 MB" />

                 </Policies>

                 <DefaultRolloverStrategymax="10" />

           </RollingFile>

           <Asyncname="asynclog">

                 <AppenderRefref="dailyrolling" />

           </Async>

 

      </appenders>

      <loggers>

           <root>

                 <appender-refref="console"></appender-ref>

           </root>

           <loggername="com.test.loggerxx" level="info"additivity="true">

                 <appender-refref="log"></appender-ref>

           </logger>

           <logger name="lee.log"additivity="false" level="all">

                 <appender-refref="asynclog"></appender-ref>

           </logger>

 

      </loggers>

</configuration>

//Main.java

packagelee;

 

importorg.slf4j.Logger;

importorg.slf4j.LoggerFactory;

 

publicclass Main {

 

      public static void main(String[] args) {

           // TODO Auto-generated method stub

           Logger logger =LoggerFactory.getLogger("root");

           logger.error("this iserror");

           logger.info("this isinfo.");

 

           Logger myLogger =LoggerFactory.getLogger("com.test.loggerxx");

           myLogger.error("myLogger:this iserror");

           myLogger.info("myLogger:this isinfo.");

 

           Logger leeLogger =LoggerFactory.getLogger("lee.log");

           for (int i = 0; i < 1000000; ++i){

                 leeLogger.error("leeLogger:thisis error");

                 leeLogger.info("leeLogger:thisis info.");

           }

 

      }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗里曼的小伙伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值