关于这两者的组合应用带来的好处,google都有 就不说了。
首先说下配置,
工作笔记:在myeclipse 中创建一个java project
创建一个 TestSlf4J 类
package com.joyce.quartz.main; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestSlf4J { private static final Logger logger =LoggerFactory.getLogger(TestSlf4J.class); public static void main(String[] args) { logger.error("Hello world {}"); System.out.println("2323"); try { int i = 1/0; } catch (Exception e) { logger.error("出现异常",e); } } }
同时把slf4j-api-1.1.jar slf4j-log4j12-1.6.1.jar log4j-1.2.16.jar 放入项目里。
再添加一个log4j.properties
# An example log4j configuration file that outputs both to System.out # and a file named 'test'. # For the general syntax of property based configuration files see the # documenation of org.apache.log4j.PropertyConfigurator. # WARNING: Location information can be useful but is very costly in # terms of computation. # The root logger uses the appender called A1. # The root logger uses the appenders called A1 and A2. Since no level # is specified, note the empty string between the comma (",") and the # equals sign ("="), the level of the root logger remains # untouched. Log4j always initializes the level for the root logger to # DEBUG. The root logger is the only logger that has a default # level. Bu default, all other loggers do not have an assigned level, # such that they inherit their level instead. log4j.rootLogger=, A1, A2 # A1 is set to be ConsoleAppender sending its output to System.out log4j.appender.A1=org.apache.log4j.ConsoleAppender # A1 uses PatternLayout. log4j.appender.A1.layout=org.apache.log4j.PatternLayout # The conversion pattern consists of date in ISO8601 format, level, # thread name, logger name truncated to its rightmost two components # and left justified to 17 characters, location information consisting # of file name (padded to 13 characters) and line number, nested # diagnostic context, the and the application supplied message log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n # Appender A2 writes to the file "test". log4j.appender.A2=org.apache.log4j.FileAppender log4j.appender.A2.File=e:/test.log # Truncate 'test' if it aleady exists. log4j.appender.A2.Append=false # Appender A2 uses the PatternLayout. log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=%-5r %-5p [%t] %c{2} %d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p]%m%n # In this example, we are not interested in INNER loop or SWAP # messages. You might try to set INNER and SWAP to DEBUG for more # verbose output. log4j.logger.org.apache.log4j.examples.SortAlgo.INNER=INFO log4j.logger.org.apache.log4j.examples.SortAlgo.SWAP=INFO
项目结构如图:
最后 运行TestSlf4J类在e盘就生成了一个test.log文件 生成内容如下:
注意:
slf4j-log4j12-1.6.1.jar是连接包,我们在java里直接用slf4j创建的log,如果没有这个连接包,是创建不出log的
还要注意的是,在没加这个连接包的时候,
会报
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”
有解决办法是说:下载slf4j-nop.jar,添加到路径中,就解决问题了
但我这边是不能下这个包,加了会报错
所以。总的加那三个包就可以了
版权声明:本文为博主原创文章,未经博主允许不得转载。
today lazy . tomorrow die .