#ConversionPattern参数的格式含义
#格式名 含义
#%c 输出日志信息所属的类的全名
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
# 比如:%d{yyy-MM-dd HH:mm:ss },输出类似: 2002 - 10 - 18 - 22 : 10 : 28
#%F 输出日志信息所属的类的类名
#%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
#%m 输出代码中指定的信息,如log(message)中的message
#%n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出
# 的,则为DEBUG,依此类推
#%r 输出自应用启动到输出该日志信息所耗费的毫秒数
#%t 输出产生该日志事件的线程名
## LOGGERS ##
#这里只设置一个logger但是它有很多的appender
log4j.rootLogger = INFO , console , file , rollfile , dailyrollfile
## APPENDERS ##
# org.apache.log4j.ConsoleAppender 的写法
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern = %-40l [ %c ] :%p -%c- %m%n
# org.apache.log4j.FileAppender 的写法 append属性代表新的日志是否覆盖旧的
# 日志,一般来说当然不用去覆盖,设置为true
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.append = true
log4j.appender.file.file = d:/logger.txt
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern = %d{yyyy-MM-dd hh:mm:ss} %F [ %c ] :%p -%c- %m%n
# org.apache.log4j.RollingFileAppender 的写法 这个appender很实用,
# 有些日志文件使用过于频繁,会使文件变的很庞大,需要分割
# maxFileSize 可以写 KB MB GB 一般我们设置100MB就可以了
# maxBackupIndex 设置备份文件的数目,一般我们设置2个,加上在用的,也就是全部利用满
# 总是有3个日志文件,用的时候用1KB做个小实验就可以了
log4j.appender.rollfile = org.apache.log4j.RollingFileAppender
log4j.appender.rollfile.file = d:/rolllogger.txt
log4j.appender.rollfile.maxFileSize = 1KB
log4j.appender.rollfile.maxBackupIndex = 2
log4j.appender.rollfile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollfile.layout.conversionPattern = %d{yyyy-MM-dd hh:mm:ss} [ %c ] :%p -%c- %m%n
# org.apache.log4j.DailyRollingFileAppender 的写法,这个是在上面的appender的基础上更改进了一步
# yyyy-MM,按月生成,生成时间为每月最后一天午夜过后,例如test.txt在2005年7月31日午夜过后会被更名为test.txt .2005 - 07 ,然后重新生成。
# yyyy-ww,按周生成,生成时间为每周六午夜过后,例如test.txt在2005年8月13日午夜过后会被更名为test.txt .2005 - 33 ,33表示当年第33周。
# yyyy-MM-dd,按天生成,生成时间为每天午夜过后,例如2005年8月16日午夜过后,test.txt会被更名为test.txt .2005 - 08 - 16 。
# yyyy-MM-dd-a,也是按天生成,但每天会生成两次,中午12:00过后一次,午夜过后一次,例如test.txt在2005年8月16 日12:00过后会被更名为test.txt .2005 - 8 - 16 -上午,午夜过后会被更名为test.txt .2005 - 8 - 16 -下午。
# yyyy-MM-dd-HH,按小时生成,例如test.txt在2005年8月16日12:00过后会被更名为test.txt .2005 - 8 - 16 - 11 。
# yyyy-MM-dd-HH-mm,按分钟生成,例如test.txt在2005年8月16日12:00过后会被更名为test.txt .2005 - 8 - 16 - 11 - 59 。
log4j.appender.dailyrollfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyrollfile.file = d:/dailyrolllogger.txt
log4j.appender.dailyrollfile.datePattern = yyyy-MM-dd-HH-mm
log4j.appender.dailyrollfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyrollfile.layout.conversionPattern = %d{yyyy-MM-dd hh:mm:ss} [ %c ] :%p -%c- %m%n
log4j.logger.org.apache.struts2 = DEBUG
log4j.logger.org.springframework = INFO
#格式名 含义
#%c 输出日志信息所属的类的全名
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
# 比如:%d{yyy-MM-dd HH:mm:ss },输出类似: 2002 - 10 - 18 - 22 : 10 : 28
#%F 输出日志信息所属的类的类名
#%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
#%m 输出代码中指定的信息,如log(message)中的message
#%n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出
# 的,则为DEBUG,依此类推
#%r 输出自应用启动到输出该日志信息所耗费的毫秒数
#%t 输出产生该日志事件的线程名
## LOGGERS ##
#这里只设置一个logger但是它有很多的appender
log4j.rootLogger = INFO , console , file , rollfile , dailyrollfile
## APPENDERS ##
# org.apache.log4j.ConsoleAppender 的写法
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern = %-40l [ %c ] :%p -%c- %m%n
# org.apache.log4j.FileAppender 的写法 append属性代表新的日志是否覆盖旧的
# 日志,一般来说当然不用去覆盖,设置为true
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.append = true
log4j.appender.file.file = d:/logger.txt
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern = %d{yyyy-MM-dd hh:mm:ss} %F [ %c ] :%p -%c- %m%n
# org.apache.log4j.RollingFileAppender 的写法 这个appender很实用,
# 有些日志文件使用过于频繁,会使文件变的很庞大,需要分割
# maxFileSize 可以写 KB MB GB 一般我们设置100MB就可以了
# maxBackupIndex 设置备份文件的数目,一般我们设置2个,加上在用的,也就是全部利用满
# 总是有3个日志文件,用的时候用1KB做个小实验就可以了
log4j.appender.rollfile = org.apache.log4j.RollingFileAppender
log4j.appender.rollfile.file = d:/rolllogger.txt
log4j.appender.rollfile.maxFileSize = 1KB
log4j.appender.rollfile.maxBackupIndex = 2
log4j.appender.rollfile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollfile.layout.conversionPattern = %d{yyyy-MM-dd hh:mm:ss} [ %c ] :%p -%c- %m%n
# org.apache.log4j.DailyRollingFileAppender 的写法,这个是在上面的appender的基础上更改进了一步
# yyyy-MM,按月生成,生成时间为每月最后一天午夜过后,例如test.txt在2005年7月31日午夜过后会被更名为test.txt .2005 - 07 ,然后重新生成。
# yyyy-ww,按周生成,生成时间为每周六午夜过后,例如test.txt在2005年8月13日午夜过后会被更名为test.txt .2005 - 33 ,33表示当年第33周。
# yyyy-MM-dd,按天生成,生成时间为每天午夜过后,例如2005年8月16日午夜过后,test.txt会被更名为test.txt .2005 - 08 - 16 。
# yyyy-MM-dd-a,也是按天生成,但每天会生成两次,中午12:00过后一次,午夜过后一次,例如test.txt在2005年8月16 日12:00过后会被更名为test.txt .2005 - 8 - 16 -上午,午夜过后会被更名为test.txt .2005 - 8 - 16 -下午。
# yyyy-MM-dd-HH,按小时生成,例如test.txt在2005年8月16日12:00过后会被更名为test.txt .2005 - 8 - 16 - 11 。
# yyyy-MM-dd-HH-mm,按分钟生成,例如test.txt在2005年8月16日12:00过后会被更名为test.txt .2005 - 8 - 16 - 11 - 59 。
log4j.appender.dailyrollfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyrollfile.file = d:/dailyrolllogger.txt
log4j.appender.dailyrollfile.datePattern = yyyy-MM-dd-HH-mm
log4j.appender.dailyrollfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyrollfile.layout.conversionPattern = %d{yyyy-MM-dd hh:mm:ss} [ %c ] :%p -%c- %m%n
log4j.logger.org.apache.struts2 = DEBUG
log4j.logger.org.springframework = INFO
import
javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
public class Log4jServlet extends HttpServlet {
private static final long serialVersionUID = -5101132572746345807L;
// Initialize global variables
public void init() throws ServletException {
String prefix = this.getServletContext().getRealPath("/");
String file = this.getInitParameter("log4j");
System.out.println("载入log4j配置文件" + prefix + file);
if (file != null) {
PropertyConfigurator.configure(prefix + file);
}
}
// Clean up resources
public void destroy() {
}
}
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
public class Log4jServlet extends HttpServlet {
private static final long serialVersionUID = -5101132572746345807L;
// Initialize global variables
public void init() throws ServletException {
String prefix = this.getServletContext().getRealPath("/");
String file = this.getInitParameter("log4j");
System.out.println("载入log4j配置文件" + prefix + file);
if (file != null) {
PropertyConfigurator.configure(prefix + file);
}
}
// Clean up resources
public void destroy() {
}
}
<
servlet
>
< servlet-name > log4j </ servlet-name >
< servlet-class >
hdu.management.library528.log4j.Log4jServlet
</ servlet-class >
< init-param >
< param-name > log4j </ param-name >
< param-value > WEB-INFclasseslog4j.properties </ param-value >
</ init-param >
< load-on-startup > 1 </ load-on-startup >
</ servlet >
< servlet-name > log4j </ servlet-name >
< servlet-class >
hdu.management.library528.log4j.Log4jServlet
</ servlet-class >
< init-param >
< param-name > log4j </ param-name >
< param-value > WEB-INFclasseslog4j.properties </ param-value >
</ init-param >
< load-on-startup > 1 </ load-on-startup >
</ servlet >
import
org.apache.log4j.Logger;
import com.opensymphony.xwork2.ActionSupport;
public class CommonAction extends ActionSupport {
private static final long serialVersionUID = -8805271658849961866L;
private static final Logger log = Logger.getLogger(CommonAction.class);
public String execute(){
log.debug("这里是日志");
return "success";
}
}
import com.opensymphony.xwork2.ActionSupport;
public class CommonAction extends ActionSupport {
private static final long serialVersionUID = -8805271658849961866L;
private static final Logger log = Logger.getLogger(CommonAction.class);
public String execute(){
log.debug("这里是日志");
return "success";
}
}
自己总结了log4j的常用方法,直接可以使用,其他还有以socket、telnet、邮件等形式,用到了再查其他资料好了