maven项目下log4j的配置

本文详细介绍了一种在Spring项目中使用Maven管理和配置Log4j的方法,包括添加依赖、配置log4j.properties文件及web.xml等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       我们目前开发 使用的是maven项目管理,框架使用的是spring + spring MVC + mybatis ,下面讲一下日志的配置。

一、在pom中添加log4j的依赖

        <dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j-api.version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.6</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.16</version>
		</dependency>

二、log4j的配置

   1. 在资源包中添加log4j配置文件,如下图:

    221052_iBUc_2894468.png

   log4j.properties 这个配置文件和spring文件夹是同级的,有人会有疑问 那里有一个properties文件夹,为啥不把这个配置文件放进去,这里我也放了,web.xml中的路径我也改了,但不打日志。

   2. log4j.properties的内容

### set log levels ###
log4j.rootLogger=INFO, stdout, log, error
log4j.Logger=search,Test  
  
### console ###
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 = [qh_cloud][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

### log file ###
log4j.appender.log = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.log.File = ${catalina.base}/logs/qh_cloud_info.log  
log4j.appender.log.Append = true  
log4j.appender.log.Threshold = INFO  
log4j.appender.log.DatePattern='.'yyyy-MM-dd  
log4j.appender.log.layout = org.apache.log4j.PatternLayout  
log4j.appender.log.layout.ConversionPattern = [qh_cloud][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

### exception ###
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.error.File = ${catalina.base}/logs/qh_cloud_error.log  
log4j.appender.error.Append = true  
log4j.appender.error.Threshold = ERROR   
log4j.appender.error.DatePattern='.'yyyy-MM-dd  
log4j.appender.error.layout = org.apache.log4j.PatternLayout  
log4j.appender.error.layout.ConversionPattern = [qh_cloud][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

    log4j的配置基本说明:

  a). 配置根Logger

            log4j.rootLogger=INFO, stdout, log, error 

  等号后面表示日志等级;日志等级公分五级:

 FATAL       0  
   ERROR      
3  
WARN      
 4  
INFO     
   6  
DEBUG     
 7 

这里定义好根后,需要在根下面的输出方式中使用上,具体的可以看上面properties的配置。


b). 日志输出目的地 ,Log4j提供的 appender 有以下几种:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

c). 日志的输出格式,Log4j提供以下几种格式:

  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

d). 参数打印,Log4j采用类似C语言中的printf函数的打印格式格式化日志信息:

   %m  输出代码中指定的消息。
 %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
 %r    输出自应用启动到输出该log信息耗费的毫秒数 。
 %c    输出所属的类目,通常就是所在类的全名 。
 %t    输出产生该日志事件的线程名 。
 %n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” 
  %d    输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式。

 %l    输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。


下面对配置中的信息进行说明:  

    a).  Log4j中Appender有几层,如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等 。

   表示输出到控制台:

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

     表示输出的到文件:

log4j.appender.log = org.apache.log4j.DailyRollingFileAppender

  b).  日志文件的名称以及保存的目录,(这里我将日志文件保存在tomcat的logs文件夹下,名字很特殊方便日志的查阅)

log4j.appender.log.File = ${catalina.base}/logs/qh_cloud_info.log 

  c). 日志的级别

log4j.appender.log.Threshold = INFO  

  d). 日志文件按照规定的时间进行保存,(如下是每天一个文件,在文件名后追加年月日进行区分保存)

log4j.appender.log.DatePattern='.'yyyy-MM-dd  

  e). 日志输出模式,这里我使用的是可以灵活地指定布局模式

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

 定义的loyout模式:

log4j.appender.log.layout.ConversionPattern = [qh_cloud][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

  f). 至于下面这个 应该是允许日志文件的追加。

log4j.appender.log.Append = true 

至此,日志的配置文件就叙述完了,这些配置好 基本上可以满足日志的控制台打印和文件的保存。

三、web.xml的配置

     进行 最后 一项 web.xml的配置,以上都整好后,需要在web中加载配置,配置过滤器等。

   a). 加载properties配置文件:

    <context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/classes/log4j.properties</param-value>
	</context-param>

   b). 日志过滤器的配置:

     <filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

=======================至此Log4j的pe'zi结束=========================

   在日志的配置中除了Log4j ,还有另一种logback的配置,这种我也没有使用过,不过在以后会使用的。  

   以上是小编 在项目中使用的日志配置,是个人参考以前的项目,在网上找资料配置出来的,可能范围有点局限,若有问题 非常欢迎 指出来。

转载于:https://my.oschina.net/qinghang/blog/789996

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值