slf4j结合log4j配置日志系统

首先这两个都是日志系统

只不过slf4j是一个简单的门面日志系统简单的来说就是提供了一些列日志接口没有具体的实现类似于jdbc但是比jdbc简单因为

它不需要加载驱动只需要加入其特定的包即可。而log4j自己单独就可以是一个完整的日志系统它提供了自己的实现而不是简单

提供日志接口。下面说说二者的整合。

1、新建一个Java project

2、引入log4j-1.2.15.jar,slf4j-api-1.5.6.jar,slf4j-log4j12-1.5.6.jar三个包 版本不限

3、在项目的根目录下新建log4j.properties内容如下

log4j.rootLogger=info, ServerDailyRollingFile, stdout

log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.ServerDailyRollingFile.DatePattern=‘.‘yyyy-MM-dd

log4j.appender.ServerDailyRollingFile.File=logs/notify-subscription.log

log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout

log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n

log4j.appender.ServerDailyRollingFile.Append=true

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c] %m%n

4、新建测试类

public class TestSlf4j {

public static void main(String[] args) {

PropertyConfigurator.configure("log4j.properties");

Logger logger = Logger.getLogger(TestSlf4j.class);

logger.info("yes");

org.slf4j.Logger logger2 = LoggerFactory.getLogger(TestSlf4j.class);

logger2.info("yes");

logger2.debug("hello");

logger2.warn("hello");

}

}

输出结果是

2014-12-09 11:20:53 INFO [com.iss.slf4j.TestSlf4j] yes

2014-12-09 11:20:53 INFO [com.iss.slf4j.TestSlf4j] yes

2014-12-09 11:20:53 WARN [com.iss.slf4j.TestSlf4j] hello

相信可能在疑问既然log4j已经可以单独作为一个日志系统为什么还需要slf4j呢?

看完下面这篇文章 也许你的疑惑就解开了http://www.importnew.com/7450.html#comment-204549

时间: 2024-08-11 04:47:48

slf4j结合log4j配置日志系统的相关文章

log4j配置日志系统

1. lib里加入3个包 slf4j-api, slf4j-log4j12, log4j 2. 在src下 创建log4j.properties ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4

slf4j和log4j配置

在选用 slf4j-api-1.7.7.jar + slf4j-log4j12-1.7.7.jar + log4j-1.2.17.jar 时输出(前提是有相应的配置文件log4j.properties,放在根目录,一般是src文件夹下)到文件logs.log和errors.log 1 基本格式如下: #配置根Logger log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , - #配置日志信息输出目的地Appender lo

slf4j,commons-logging,log4j等等日志jar的关系

通过上面的图,可以简单的理清关系! commons-logging和slf4j都是日志的接口,供用户使用,而没有提供实现! log4j,logback等等才是日志的真正实现. 当我们调用接口时,接口的工厂会自动寻找恰当的实现,返回一个实现的实例给我服务.这些过程都是透明化的,用户不需要进行任何操作! 这里有个小故事,当年Apache说服log4j以及其他的日志来按照commons-logging的标准编写,但是由于commons-logging的类加载有点问题,实现起来也不友好,因此log4j的

配置日志系统

配置setting LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters':{ "generic": { "format": "%(asctime)s [%(process)d] [%(levelname)s] %(message)s", "datefmt": "[%Y-%m-%d %H:%M:%S %z]", &qu

java日志框架slf4j与log4j的使用与配置

日志记录自然是非常重要的,但恐怕能记住slf4j与log4j等日志框架配置的人就很少了,这个东西不难,只是配置好后很少会去动它,开发新项目一般也是从其他项目拷贝,或者参照文档 废话不多说,先说log4j,使用log4j只要简单的几步 首先,弄到log4j的jar包,maven工程配置以下依赖就行,或者,从阿里的maven仓库下载jar包,添加到工程的"build path" <dependency> <groupId>log4j</groupId>

slf4j简单日志门面与各种日志系统

SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现. 准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,允许用户在部署最终应用时方便的变更其日志系统.在系统开发中,统一按照slf4j的API进行开发,在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上.比如:选择JDK自带的日志系统,则只需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.1

使用Slf4j集成Log4j2构建项目日志系统的完美解决方案

一.背景 最近因为公司项目性能需要,我们考虑把以前基于的log4j的日志系统重构成基于Slf4j和log4j2的日志系统,因为,使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见几种日志系统,而使用log4j2而不是log4j是因为Log4j 1.x 在高并发情况下出现死锁导致cpu使用率异常飙升,而Log4j2.0基于LMAX Disruptor的异步日志在多线程环境下性能会远远优于Log4j 1.x和logback(官方数据是10倍以上). 关于slf4j的原理以及优点

配置Tomcat的日志系统

成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件 一.引言: 实习单位让用log4j配置webapp的日志系统,要求产生的日志文件是html格式,而且是每天以yyyy-mm-dd日期格式命名的日志文件. 这个以前让自己费神了一段时间,近期花了两天时间总算配置成功了!只是配置成功的是tomcat的,不是单个webapp的,现把步骤记录下来,晚上再配置webapp的.先写一步一步的操作,后面再解说一些log4j的关键知识点. 二.一步一步配置

slf4j与log4j

推荐使用SLF4J(Simple Logging Facade for Java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统. 1    Slf4j优势 与使用apache commons-logging或直接使用log4j相比,SLF4J提供了一个名为参数化日志的高级特性,可以显著提高在配置为关闭日志的情况下的日志语句性能, log.debug("Found {} records matching filter: '{}'