`
vilight
  • 浏览: 37011 次
文章分类
社区版块
存档分类
最新评论

log4j slf4j 配置

 
阅读更多

slf4j只定义接口,具体实现还是要靠log4j来定义,所以即使在代码中用slf的getlogger,还是要指定log4j的配置信息等。

 

1. pom.xml

<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.6.3</version>
		</dependency>
		

 

2. 在classpath(src/main/resource)目录下建一个env.properties或log4j.properties文件

### direct log messages to stdout ###
log4j.rootLogger=${log4j.rootLogger}
log4j.appender.stdout=${log4j.appender.stdout}
log4j.appender.stdout.Target=${log4j.appender.stdout.Target}
log4j.appender.stdout.layout=${log4j.appender.stdout.layout}
log4j.appender.stdout.layout.ConversionPattern=${log4j.appender.stdout.layout.ConversionPattern}

 

3. filter-dev.properties

### direct log messages to stdout ###
log4j.rootLogger=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

 

4. web.xml中指定log4j的spring配置及listener

<!-- specify log configure file -->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:env.properties</param-value>
	</context-param>

	<!-- log listener -->
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>

 

5. 在代码中使用

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

	private static Logger LOGER = LoggerFactory.getLogger(UserAction.class);
...

LOGER.info("############ hibernate pagination search user");

 

 

 

 

写道

Log4j默认把日志信息分为五个等级

       debug < info < warn < error < fatal

定义属性文件
log4j.rootLogger=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
分析一下:
第一行,配置log4j.rootLogger你明白吧。应为它是根,总得配置一下,否则别的Log继承什么啊。其他的Log可以配置也可以不配置。等号后面的第一个参数表示日志级别,可以填五个级别中的一种,后面的参数都是让Log知道输出到哪里,如果你想让日志输出到两个地方就加两个输出参数,比如:
log4j.rootLogger=info, stdout, file
这里的info表示,该Log的日志级别为info,所有级别小于info的日志都不会被记录。比如使用这个配置文件的话,我刚开始举的那个类中
log.debug("Debug info.");
这句话是不起作用的,因为debug的级别小于info。这样就很容易控制什么信息在调试的时候要显示,什么信息在发布的时候要去掉。这些都不用改代码,很方便吧。
但,stdout和file又是什么呢?
接着往下看,就是配置stdout了,这个名字是随便取的,你可以叫它A:
log4j.appender.A=org.apache.log4j.ConsoleAppender
那么上面的rootLogger的参数stdout也要改成A,其他用到的地方当然也要改。这里的关键不是名字,而是appender类型,比如这里的“ConsoleAppender”,看明白了吧,输出到Console。后面两行都是设置日志格式的,一般情况下你就照抄吧。

 

分享到:
评论

相关推荐

    log4j + slf4j-api + slf4j-log4j12

    slf4j-log4j12-1.7.x版本是SLF4J针对Log4j 1.2版本的绑定器,它使得应用可以使用SLF4J接口,但实际的日志输出通过Log4j进行。这个桥接器让项目能利用SLF4J的灵活性,同时使用Log4j的成熟实现。 在提供的文件名列表...

    Log4j2结合Slf4j配置使用

    Log4j2 结合 Slf4j 配置使用 Log4j2 是一个功能强大且广泛使用的日志记录工具,它提供了灵活的日志记录机制和高性能的日志记录能力。Slf4j 则是一个简单的日志记录门面,提供了统一的日志记录接口。今天,我们将...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    总结,SLF4J和Log4j的组合使用让日志管理更加灵活,开发者可以通过SLF4J的简洁API进行日志记录,同时利用Log4j的强大功能,如自定义输出格式和多种输出目的地。通过适当的配置和测试,我们可以确保日志系统按照预期...

    log4j-2.11.2的jar包和日志门面slf4j的jar包

    总结一下,这个压缩包提供了Log4j 2和SLF4J的核心组件,允许开发者利用SLF4J的简单接口和Log4j 2的强大功能。通过SLF4J的绑定实现,可以在保持代码与日志实现解耦的同时,享受到Log4j 2的高效和灵活。在实际项目中,...

    log4j-slf4j-impl.zip

    "Log4j-slf4j-impl.zip"这个压缩包中包含的是Log4j对SLF4J接口的实现,即"log4j-slf4j-impl-2.11.2.jar"。SLF4J提供了一组API,允许开发者编写与具体日志库无关的日志代码。而Log4j-SLF4J-Impl则是SLF4J的一个绑定,...

    日志 log4j-slf4j+logback1.3.0

    6. slf4j-log4j12.jar:SLF4J到Log4j的适配器,使得SLF4J的日志请求可以被Log4j处理。 总的来说,"log4j-slf4j+logback1.3.0"的组合提供了一个强大、灵活的日志解决方案,允许开发者使用统一的API进行日志记录,...

    tomcat9 slf4j+log4j2 写日志.zip

    3. **配置Tomcat**:在`$CATALINA_HOME/lib`目录下添加`log4j-api.jar`和`log4j-slf4j-impl.jar`,这将使Tomcat使用Log4j2作为其内部的日志系统。 4. **排除其他日志实现**:确保你的应用中没有引入其他的日志实现...

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

    添加Slf4j和Log4j2的依赖可以使用以下配置: &lt;groupId&gt;org.slf4j &lt;artifactId&gt;slf4j-api &lt;version&gt;1.7.13 &lt;groupId&gt;org.slf4j &lt;artifactId&gt;jcl-over-slf4j &lt;version&gt;1.7.13 &lt;scope&gt;runtime ...

    slf4j+log4j

    SLF4J(Simple Logging Facade for Java)和Log4j是Java开发中常用的日志处理框架。SLF4J提供了一个抽象层,允许开发者在运行时插入所需的日志实现,而Log4j则是一个具体的日志实现,以其强大的功能和灵活性著称。...

    slf4j1.7.25+ log4j2.8.2 集成jar包

    描述中提到的是`slf4j-log4j`,这通常是指SLF4J的Log4j绑定包,它提供了SLF4J到Log4j的桥接,使得SLF4J调用能够被Log4j接收并处理。在项目中,你需要将这两个jar包加入到类路径中,同时配置Log4j的配置文件,以指定...

    slf4j-log4j12-1.7.7.jar下载

    SLF4J的配置主要是通过Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)来完成的。这个配置文件定义了日志记录的行为,包括日志级别(DEBUG, INFO, WARN, ERROR, FATAL等)、输出目的地(控制台、文件、...

    log4j_slf4j.jar

    只需在项目中引用这个jar包,并配置相应的Log4j配置文件,就可以开始记录日志了。 SLF4J的优点在于它的灵活性和可扩展性。它不仅支持Log4j,还兼容其他日志框架,如Logback、Java内置的日志系统(java.util.logging...

    slf4j+log4j2配置使用

    接下来,将详细介绍SLF4J和Log4j2的配置使用。 ### SLF4J与Log4j2的配合使用 在Spring Boot项目中,可以使用SLF4J作为日志门面,通过Log4j2实现日志记录。首先需要在项目中排除Spring Boot默认的日志实现(即...

    JavaEE slf4j转log4j的小示例

    - **配置Log4j**:在项目资源目录下创建`log4j.properties`或`log4j2.xml`文件,定义日志输出的配置。例如,以下是一个简单的`log4j.properties`配置: ``` log4j.rootLogger=DEBUG, stdout log4j.appender....

    log4j-1.2.17.jar、slf4j-api-1.7.21.jar、slf4j-log4j12-1.7.2.jar

    在实际应用中,我们需要在类路径下包含这三个JAR文件,并且根据项目需求配置相应的Log4j配置文件(通常是`log4j.properties`或`log4j.xml`)。配置文件决定了日志输出的级别、格式、目的地等,以便在开发、测试和...

    slf4j+log4j需要的jar和配置文件

    在项目中,确保这些jar文件位于类路径下,并且正确配置了log4j配置文件,就可以通过SLF4J接口进行日志记录,而底层的日志输出则由Log4j处理。例如: ```java import org.slf4j.Logger; import org.slf4j....

    slf4j-log4j12-1.7.12.jar、slf4j-api-1.7.12.jar

    标题中的"slf4j-log4j12-1.7.12.jar"是SLF4J的一个绑定包,它的作用是将SLF4J API与log4j日志框架连接起来。具体来说,这个版本(1.7.12)的绑定包实现了SLF4J的API,并将其桥接到log4j的实现上,使得开发者可以通过...

    hibernate3-log4j-slf4j所有包

    SLF4J提供了一个桥接器(slf4j-log4j12.jar),使得Log4j可以被SLF4J调用。这样做的好处是保持代码的独立性,如果未来需要切换到其他日志框架,只需更换桥接器即可。 **配置** 为了使用这个组合,开发者需要在项目...

    slf4j与Log4j集成

    总结来说,SLF4J和Log4j的集成是Java日志管理中的常见实践,通过SLF4J的抽象接口和Log4j的具体实现,我们可以灵活地控制日志的输出,并利用Log4j的配置进行定制化管理,从而更好地调试和监控我们的应用。

    slf4j-api-1.7.7,slf4j-log4j12-1.7.7

    例如,可能包含了Logback,它是SLF4J的推荐实现,由SLF4J的作者Ceki Gülcü设计,比Log4j更现代、性能更好,并且具有更好的可配置性。 在实际项目中,使用SLF4J通常需要结合一个具体的日志实现,例如Log4j、...

Global site tag (gtag.js) - Google Analytics