使用tomcat7:
首先准备工具:
1、log4j-1.2.17.jar
2、tomcat-juli.jar
3、tomcat-juli-adapters.jar
网盘下载:
链接:https://pan.baidu.com/s/1GtpP4zrk_g5d6LMRE4j_Dw 提取码:pyt1
4、准备好一个log4j.properties文件
内容可以如下:
这里简单对配置文件进行说明:

off 最高等级,用于关闭所有日志记录。
fatal 指出每个严重的错误事件将会导致应用程序的退出。
error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
warm 表明会出现潜在的错误情形。
info 一般和在粗粒度级别上,强调应用程序的运行全程。
debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
all 最低等级,用于打开所有日志记录。

org.apache.log4j.ConsoleAppender(控制台),
 org.apache.log4j.FileAppender(文件),
 org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
 org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)log4j.appender.appenderName.File=日志文件保存目录(如果是输出到控制台,就不用配置这一项了)
 log4j.appender.appenderName.Append=true true表示日志信息增加到指定文件中,false则将日志信息覆盖指定的文件内容,默认值是true
 log4j.appender.appenderName.Threshold=DEBUG 只输出DEBUG级别以上的日志 设置日志输出级别
 log4j.appender.appenderName.layout=【Layout日志布局格式】org.apache.log4j.HTMLLayout(以HTML表格形式布局),
 org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)log4j.appender.appenderName.layout.ConversionPattern=日志输出格式
#日志级别:和下面的 log4j.appender后面对应即可,可以自己命名
 log4j.rootLogger=info,console,DDD,EEE,catalina

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

所以可以根据自己的需求配置自由搭配的输出格式,如:%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

以下是一个简单的log4j.properties配置文件

输出到日志文件

log4j.appender.catalina=org.apache.log4j.DailyRollingFileAppender

自定义日志输出目录和文件。

log4j.appender.catalina.File= ${catalina.home}/logs/catalina.out
 log4j.appender.catalina.Append=true

这里UTF-8后面不能有空格,下同

log4j.appender.catalina.Encoding=UTF-8

每天输出一个日志

log4j.appender.catalina.DatePattern=’.'yyyy-MM-dd
 log4j.appender.catalina.layout = org.apache.log4j.PatternLayout
 log4j.appender.catalina.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c- %m%n
输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
 log4j.appender.console.Target = System.out
 log4j.appender.console.Encoding=UTF-8
 log4j.appender.console.layout = org.apache.log4j.PatternLayout
 log4j.appender.console.layout.ConversionPattern = %d [%t] %-5p %c- %m%n输出DEBUG 级别以上的日志到=/Users/tinybye/Documents/log4j/debug.log
log4j.appender.DDD=org.apache.log4j.DailyRollingFileAppender
 log4j.appender.DDD.File=${catalina.home}/logs/debug.log
 log4j.appender.DDD.Append=true
 log4j.appender.DDD.Threshold=DEBUG
 log4j.appender.DDD.layout=org.apache.log4j.PatternLayout
 log4j.appender.DDD.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n输出ERROR 级别以上的日志到=/Users/tinybye/Documents/log4j/error.log
log4j.appender.EEE=org.apache.log4j.DailyRollingFileAppender
 log4j.appender.EEE.File=${catalina.home}/logs/error.log
 log4j.appender.EEE.Append=true
 log4j.appender.EEE.Threshold=ERROR
 log4j.appender.EEE.layout=org.apache.log4j.PatternLayout
 log4j.appender.EEE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

配置文件结束

开始操作步骤:
1、将log4j-1.2.17.jar和tomcat-juli-adapters.jar放入${tomcat_home}/lib下面

2、将tomcat-juli.jar替换掉用 logrotate 每小时分割java 日志_apache{tomcat_home}/conf下面的context.xml文件
将Context 修改为 Context swallowOutput=“true” 下图中这样,才能让log4j接管日志

用 logrotate 每小时分割java 日志_log4j日志切割_02


4、将log4j.properties文件复制到${tomcat_home}/lib目录下

5、重启tomcat就可以了