slf4j 和 log4j合用的(Maven)配置

简述:

添加logger的日志输出,下面是配置信息供备忘

 

步骤:

1. 在Maven的porn.xml 文件中添加dependency如下

[html] view plaincopy

  1. <dependency>
  2. <groupId>org.slf4j</groupId>
  3. <artifactId>slf4j-log4j12</artifactId>
  4. <version>1.7.2</version>
  5. </dependency>

之后就会添加三个包,

2. 之后在项目下添加log4j.properties

项目路径如下,

log4j.properties

[html] view plaincopy

  1. #config root logger
  2. log4j.rootLogger = INFO,system.out
  3. log4j.appender.system.out=org.apache.log4j.ConsoleAppender
  4. log4j.appender.system.out.layout=org.apache.log4j.PatternLayout
  5. log4j.appender.system.out.layout.ConversionPattern=MINAServer Logger-->%5p{%F:%L}-%m%n
  6. #config this Project.file logger
  7. log4j.logger.thisProject.file=INFO,thisProject.file.out
  8. log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender
  9. log4j.appender.thisProject.file.out.File=logContentFile.log
  10. log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout

3. 在代码中添加

[java] view plaincopy

  1. private static final Logger logger = LoggerFactory.getLogger(MINAServer.class);

接下来就能输出了,

[html] view plaincopy

  1. logger.info("now {}" , "starting server");

输出如下:

如果要输出logger文件:

[plain] view plaincopy

  1. log4j.rootLogger=INFO,R,stdout
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.stdout.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n
  5. log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
  6. log4j.appender.R.File=../logs/log
  7. log4j.appender.R.layout=org.apache.log4j.PatternLayout
  8. log4j.appender.R.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n

下面是log4j.properties的配置信息,在此要感谢前辈提供的资源

#输出格式
#%m 输出代码中指定的消息
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

格式化例子:
log4j.appender.thisProject.file.out.layout.ConversionPattern=log4j-->%d{yyyy MMM dd HH:mm:ss,SSS}%5p{%F\:%L}-%m%n

注意:

1.信息格式化的小知识
    这些参数中间可能会参杂一些数字比如:%5p它的意思就是在输出此参数之前加入多少个空格,还有就是里面的“\”的作用是转义字符

2.log4j.properties文件放置位置
    (1)在java project项目中,它放置的位置是在项目的根目录下而不是在项目的src目录下。
    (2)在javaweb项目中它放置的位置是在src目录下,因为这个时候tomcat会去默认的加载它的,不需要我们去手动的加载log4j的配置文件,只需要根据配置获取自己需要的logger实例即可,由此我们可以知道如果我们使用的不是tomcat容器的话,是不是需要自己手动加载或者至少要配置一下呢?比如使用Websphere等非apache服务器。

3.对于java web项目里面的日志的位置配置
    (1)如果是要指定日志文件的位置为D盘下的log.txt文件。
    log4j.appender.thisProject.file.out.File=d:\\log.txt
    (2)如果指定日志文件的位置为当前的tomcat的工作目录下的某个文件
    log4j.appender.thisProject.file.out.File=${catalina.home}/logs/logs_tomcat.log

4.log4j的加载机制

log4j.properties加载机制?其实log4j.properties只是log4j的配置文件。程序启动时,log4j组件去读log4j.properties,和读取普通配置文件没多大区别。获取用户配置的一些log4j的属性值,调用想应该的方法为log4j属性设置。

把log4j.properties当作一个struts.xml或者一个hibernate-cfg.xml就可以了。但不同的是,log4j不像struts和hibernate,它不是一个独立的组件,没法自己完成初始化,一般都是什么组件需要它 就去初始化。比如,hibernate默认的日志组件就是log4j,在hibernate初始化的时候它会去初始化log4j。如果你没配置log4j.properties,hibernate会抛出异常,但还是可以正常初始化。

时间: 2024-10-06 00:30:41

slf4j 和 log4j合用的(Maven)配置的相关文章

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

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

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

SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

一直对springmvc和mybatis挺怀念的,最近想自己再搭建下框架,然后写点什么. 暂时没有整合缓存,druid也没有做ip地址的过滤.Spring的AOP简单配置了下,也还没具体弄,不知道能不能用,log也不知道能不能用,`(*∩_∩*)′哈哈,有点不负责任...... 直接上代码: 使用的eclipse和eclipse自带的maven,参考了网上的资料,有些代码是拷贝的,不过都自己测试过了.嗯,可以跑起来... 先上项目结构: 新建maven项目,选择web,然后配置pom: <pro

Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 以及 IntelliJ IDEA 怎样打开依赖视图

Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 配置原则: 利用依赖,将所需的jar包加载到project中. 先依赖主要jar包 Spring + Spring MVC + MyBatis + database 再依赖次要jar包 C3p0连接池.log4j,Junit 外围jar包 POI jFreeCharts jxl 样例: 通常仅仅使用Spring时,将spring-context依赖到pom中. <dependency> <groupId&

springmvc+spring+jpa(hibernate)+redis+maven配置

废话不多少 项目结构 pom.xml配置例如以下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd

Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 以及 IntelliJ IDEA 如何打开依赖视图

Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 配置原则: 利用依赖,将所需的jar包载入到工程中. 先依赖主要jar包 Spring + Spring MVC + MyBatis + database 再依赖次要jar包 C3p0连接池,log4j,Junit 外围jar包 POI jFreeCharts jxl 例子: 通常只使用Spring时,将spring-context依赖到pom中. <dependency> <groupId>org

maven配置hibernate

本文为原创,转载请注明 来至: http://blog.csdn.net/j903829182/article/details/38147659 1.进入cmd创建一个web项目并导入myeclipse中修改好目录结构和配置好项目的属性,详细的我这里就不说了,具体请参照我的博客:http://blog.csdn.net/j903829182/article/details/38128777里面有具体的创建配置的方法和步骤,这这里我主要讲解下怎么使用maven来配置管理hibernate 我这里主

Slf4j与log4j及log4j2、logbak的关系及使用方法

Slf4j与log4j及log4j2的关系及使用方法 slf4j slf4j仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已,所以单独的slf4j是不能工作的,必须搭配其他具体的日志实现方案,比如log4j或者log4j2,要在系统中使用slf4j,我们需要引入的核心包为:slf4j-api-1.6.4.jar. 如果不想每次都写private  final Logger logger = LoggerFactory.getLog

Java日志框架SLF4J和log4j以及logback的联系和区别

1.SLF4J(Simple logging Facade for Java) 意思为简单日志门面,它是把不同的日志系统的实现进行了具体的抽象化,只提供了统一的日志使用接口,使用时只需要按照其提供的接口方法进行调用即可,由于它只是一个接口,并不是一个具体的可以直接单独使用的日志框架,所以最终日志的格式.记录级别.输出方式等都要通过接口绑定的具体的日志系统来实现,这些具体的日志系统就有log4j,logback,java.util.logging等,它们才实现了具体的日志系统的功能. 如何使用SL