在javaweb中使用log4j
2013-08-26 10:09
295 查看
新建一工程:
log4j使用log4j的准备工作,
第一jar包,需要log4j-1.2.11.jar包,导入到自己的工程中;
第二创建log4j.properties文件,填入相应的配置,我自己填写了两个配置一个是控制台的输出,另一个是文件的输出。
配置如下:
### 把日志信息输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
### 信息打印到System.out上
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
### 指定输出格式:显示日期和log信息
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
### 把日志信息输出到文件 F:\\log\\test.log
log4j.appender.file=org.apache.log4j.FileAppender
### 指定日志输出的文件名
log4j.appender.file.File=f:\\log\\test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
### 指定输出格式:显示日期,日志发生位置和日志信息
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n
### 设置优先级别、以及输出源 ###
### 设置优先级别为debug
log4j.rootLogger=debug, stdout, file
配置完成了! 下面写一个测试程序吧!!!
Log4j.java
import org.apache.log4j.Logger;
public class Log4j {
public static void main(String[] args) {
// 获取日志记录器,这个记录器将负责控制日志信息
Logger logger = Logger.getLogger(Log4j.class.getName());
try {
// 使用Logger对象的debug、info方法输出日志信息
logger.debug("设置教员的编号。");
} catch (IllegalArgumentException ex) {
// 使用Logger对象的debug、info方法输出日志信息
logger.info(ex.getMessage());
}
}
}
测试结果:这是控制台的输出效果:
2013-08-13 12:22:21 设置教员的编号。
当log文件路径设置为工程目录下的一个路径时,做法如下:
在web项目中ser目录下
log4j.properties
按等级保存到文件
log4j.rootLogger=info,stdout,info,debug,error
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = INFO
log4j.appender.info.append=true
log4j.appender.info.File=${webApp.root}/logs/info.log
log4j.logger.debug=debug
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.debug.datePattern='.'yyyy-MM-dd
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.append=true
log4j.appender.debug.File=${webApp.root}/logs/debug.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = ERROR
log4j.appender.error.append=true
log4j.appender.error.File=${webApp.root}/logs/error.log
创建Servlet类,程序启动加载
Log4jInitServlet.java
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
public class Log4jInitServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");
if (file != null) {
System.out.println(prefix);
System.setProperty("webApp.root", prefix);/*替换log4j.properties文件中的${webApp.root}参数*/
PropertyConfigurator.configure(prefix + file);
}
}
}
在web.xml中添加
<servlet>
<servlet-name>log4j</servlet-name>
<servlet-class>
com.jzy.che.action.Log4jInitServlet
</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
调用
public static Logger logger = Logger.getLogger(Log4jUtil.class.getName());
log4j使用log4j的准备工作,
第一jar包,需要log4j-1.2.11.jar包,导入到自己的工程中;
第二创建log4j.properties文件,填入相应的配置,我自己填写了两个配置一个是控制台的输出,另一个是文件的输出。
配置如下:
### 把日志信息输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
### 信息打印到System.out上
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
### 指定输出格式:显示日期和log信息
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
### 把日志信息输出到文件 F:\\log\\test.log
log4j.appender.file=org.apache.log4j.FileAppender
### 指定日志输出的文件名
log4j.appender.file.File=f:\\log\\test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
### 指定输出格式:显示日期,日志发生位置和日志信息
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n
### 设置优先级别、以及输出源 ###
### 设置优先级别为debug
log4j.rootLogger=debug, stdout, file
配置完成了! 下面写一个测试程序吧!!!
Log4j.java
import org.apache.log4j.Logger;
public class Log4j {
public static void main(String[] args) {
// 获取日志记录器,这个记录器将负责控制日志信息
Logger logger = Logger.getLogger(Log4j.class.getName());
try {
// 使用Logger对象的debug、info方法输出日志信息
logger.debug("设置教员的编号。");
} catch (IllegalArgumentException ex) {
// 使用Logger对象的debug、info方法输出日志信息
logger.info(ex.getMessage());
}
}
}
测试结果:这是控制台的输出效果:
2013-08-13 12:22:21 设置教员的编号。
当log文件路径设置为工程目录下的一个路径时,做法如下:
在web项目中ser目录下
log4j.properties
按等级保存到文件
log4j.rootLogger=info,stdout,info,debug,error
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = INFO
log4j.appender.info.append=true
log4j.appender.info.File=${webApp.root}/logs/info.log
log4j.logger.debug=debug
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.debug.datePattern='.'yyyy-MM-dd
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.append=true
log4j.appender.debug.File=${webApp.root}/logs/debug.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = ERROR
log4j.appender.error.append=true
log4j.appender.error.File=${webApp.root}/logs/error.log
创建Servlet类,程序启动加载
Log4jInitServlet.java
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
public class Log4jInitServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");
if (file != null) {
System.out.println(prefix);
System.setProperty("webApp.root", prefix);/*替换log4j.properties文件中的${webApp.root}参数*/
PropertyConfigurator.configure(prefix + file);
}
}
}
在web.xml中添加
<servlet>
<servlet-name>log4j</servlet-name>
<servlet-class>
com.jzy.che.action.Log4jInitServlet
</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
调用
public static Logger logger = Logger.getLogger(Log4jUtil.class.getName());
相关文章推荐
- log4j介绍以及在java项目和javaweb项目中使用log4j的实例
- log4j在javaWeb项目中的使用
- Log4J在javaWeb应用程序中的使用
- Javaweb项目中使用Log4j记录日志
- JavaWeb项目异常管理之log4j的使用教程
- 在JavaWeb中使用Log4j步骤
- log4j2在Java和Javaweb中使用的注意事项
- JavaWeb学习笔记之Log4j使用教程
- 使用log4j在javaweb中实现日志管理
- Log4j的进阶使用-自定义类和+自定义输出日志类型+输出文件
- log4j配置使用教程
- 使用XML方式配置log4j日志
- Log4j使用总结
- Log4j使用方法总结
- Log4j使用总结
- SpringBoot 中使用 Log4j
- Log4j使用实例
- Log4j扩展使用--日志格式化器Layout
- javaweb之request使用RequestDispatcher的include方法实现页面包含
- Log4j 2.0在开发中的高级使用详解—SocketAppender的远程输出(五)