研究了好久……先在apache.org上下载一个log4j-1.2.15.jar,导入WEB-INF/lib目录下;
写一个log4j.properties,放入src目录,该内容如下:
log4j.
rootLogger=INFO,FILE
log4j.
addivity.
org.
apache=
true# FILE
log4j.
appender.
FILE=org.
apache.
log4j.
DailyRollingFileAppenderlog4j.
appender.
FILE.
Encoding=GBK
log4j.
appender.
FILE.
Threshold=INFO,DEBUG
log4j.
appender.
FILE.
File=WEB-INF\\logs\\log
log4j.
appender.
FILE.
DatePattern=
'_'yyyyMMdd
'.log'log4j.
appender.
FILE.
layout=org.
apache.
log4j.
PatternLayoutlog4j.
appender.
FILE.
layout.
ConversionPattern=%d
{yyyy-MM-dd HH\:mm\:ss,SSS
} [%p
] %m
[%c
]%n
写一个servlet,加载log4j,并使这些文件保存到服务器目录下:
-
package bootcamp.common.servlet;
-
-
import java.io.FileInputStream;
-
import java.io.IOException;
-
import java.util.Properties;
-
-
import javax.servlet.ServletConfig;
-
import javax.servlet.ServletException;
-
import javax.servlet.http.HttpServlet;
-
-
import org.apache.log4j.Logger;
-
import org.apache.log4j.PropertyConfigurator;
-
-
public class Log4jInitServlet extends HttpServlet {
-
-
@Override
-
public void init(ServletConfig config) throws ServletException {
-
String prefix = config.
getServletContext().
getRealPath("/");
-
String file = config.
getInitParameter("log4j");
-
String filePath = prefix + file;
-
-
try {
-
-
props.load(istream);
-
istream.close();
-
-
String logFile = prefix + props.
getProperty("log4j.appender.FILE.File");
//设置路径
-
props.setProperty("log4j.appender.FILE.File",logFile);
-
-
PropertyConfigurator.configure(props);//装入log4j配置信息
-
-
Logger logger = Logger.getLogger(Log4jInitServlet.class.getName());
-
-
logger.info("创建日志文件:" + props.getProperty("log4j.appender.FILE.File"));
-
-
-
toPrint("Could not read configuration file [" + filePath + "].");
-
toPrint("Ignoring configuration file [" + filePath + "].");
-
}
-
}
-
-
public static void toPrint
(String content
) {
-
-
}
-
-
}
配置web.xml
<servlet>
<description>Log4j init Servlet</description>
<display-name>Log4j init Servlet</display-name>
<servlet-name>Log4jInitServlet</servlet-name>
<servlet-class>bootcamp.common.servlet.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>
接着,在需要记录日志的类,先创建一个记录器变量
static Logger logger = Logger.getLogger(类名.class.getName());
如果不设成static,可以写作
Logger logger = Logger.getLogger(this.getClass().getName());
在记录时直接调用以下各种方法需要记录的信息即可。
logger.debug("调试信息.");
logger.info("一般信息.");
logger.warn("警告信息.");
logger.error("错误信息.");
logger.fatal("致命信息.");
※ 不过这种每天生成日志的方法,要从第二天开始才会按照log_yyyyMMdd.log的格式保存。
附录,完整的log4j.properties(使用控制台、数据库、文件保存日志),配解释:
-
# level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
-
log4j.rootLogger=DEBUG,CONSOLE,DATABASE,A1
-
log4j.addivity.org.apache=true
-
-
# 应用于控制台
-
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-
# 本处设置为"INFO"以上级别在控制台输出(默认情况使用rootLogger中的设置)
-
log4j.appender.CONSOLE.Threshold=INFO
-
log4j.
appender.
CONSOLE.
Target=
System.
out
-
log4j.appender.CONSOLE.Encoding=GBK
-
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
-
-
# 用于数据库
-
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
-
log4j.
appender.
DATABASE.
URL=jdbc:oracle:thin:@
90.0.12.20:
1521:ORCL
-
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
-
log4j.appender.DATABASE.user=Nation
-
log4j.appender.DATABASE.password=1
-
# 本处设置为"WARN"以上级别在数据库存储(默认情况使用rootLogger中的设置)
-
log4j.appender.DATABASE.Threshold=WARN
-
log4j.appender.DATABASE.sql=INSERT INTO T_LOG4J(stamp,thread,infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')
-
# 写入数据库中的表LOG4J的Message字段中,内容%d(日期)%c: 日志信息所在地(类名)%p: 日志信息级别%m: 产生的日志具体信息 %n: 输出日志信息换行
-
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
-
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
-
-
# 每天新建日志
-
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
-
log4j.
appender.
A1.
File=C:/log4j/website.
log
-
log4j.appender.A1.Encoding=GBK
-
log4j.appender.A1.Threshold=DEBUG
-
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
-
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
log4j.rootLogger 的等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示
分享到:
相关推荐
### Tomcat 下的 Log4j 日志配置详解 在日常的 Web 开发中,日志记录对于调试问题、监控系统状态以及后期维护来说至关重要。在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发...
### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。它主要用于记录Java应用程序的运行时信息,帮助开发者追踪应用程序的行为、调试问题以及进行性能...
3. **配置SpringBoot**:在`application.properties`中指定Log4j配置文件位置。 ```properties logging.config=classpath:log4j.properties ``` ### SpringBoot与Log4j2 Log4j2作为Log4j的升级版,提供更好的性能...
Java程序log4j配置详解 log4j是一个流行的Java日志记录工具,提供了灵活的日志记录和管理功能。在Java程序中,log4j配置正确是非常重要的,本文将详细介绍log4j配置的各个方面。 一、log4j配置文件 log4j的配置...
Log4j的配置通常通过一个XML或properties格式的配置文件完成,例如`log4j.properties`或`log4j.xml`。以下是一个基本的`log4j.properties`配置示例: ```properties # 设置根日志器的级别为INFO log4j.rootLogger=...
### log4j配置与使用方法 #### 一、log4j简介 log4j是Apache的一个开源项目,通过使用log4j,开发者能够控制日志信息的生成、等级以及输出的目的地。它允许用户根据不同的环境调整日志的级别,从而帮助开发者在...
- `org.apache.log4j.DailyRollingFileAppender`:根据日期滚动日志文件,每天生成一个新的日志文件。 - `org.apache.log4j.RollingFileAppender`:当文件大小达到指定值时,自动滚动日志文件,创建新文件。 - `...
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
### Log4j配置文件详解 #### 一、概述 Log4j是一款开源的日志记录工具,广泛应用于Java应用程序中。其强大的配置灵活性使得开发者能够轻松地定制日志记录的细节,如日志级别、输出目的地及日志信息的格式等。本文...
**二、Log4j配置文件** 在压缩包中,还包含了一份名为`log4j.properties`的配置文件。这是Log4j使用的一种配置格式,基于Java Properties格式。配置文件决定了日志信息如何输出、输出到哪里,以及日志的级别等关键...
总结,Log4j的灵活性使其成为Java开发中不可或缺的工具,通过合理配置,不仅可以生成动态的日志文件名,还能动态创建文件夹,有效管理和组织大量的日志数据。在实际项目中,结合`logDemo.txt`等样例文件进行实践,能...
**标题:“log4j的配置示例”** **描述:“简单的log4j测试工程”** 在Java开发中,日志管理是一项重要的任务,它有助于跟踪应用程序的运行状态、错误和调试信息。Log4j是Apache提供的一款开源日志组件,广泛应用...
压缩包中的"**log4j配置说明及所需jar包**"包含了Log4j的库文件,包括`log4j.jar`和其他可能的依赖。确保将这些JAR包添加到项目的类路径(Classpath)中,这样你的程序才能正确识别并使用Log4j。 **四、代码示例** ...
2. **使用DailyRollingFileAppender**:`DailyRollingFileAppender`是`log4j`提供的一种特殊Appender,它可以按照指定的时间间隔(通常是每天)滚动生成新的日志文件。我们可以通过以下配置设置每日滚动: ```...
- `log4j.appender.R`配置了文件输出,使用`DailyRollingFileAppender`,每天生成一个新的日志文件,同样设置了输出格式。 ### 4. 日志级别与使用 Log4j提供了多种日志级别,从低到高依次是:TRACE、DEBUG、INFO、...
现在,Tomcat将根据配置的`log4j.properties`文件生成并管理日志,每天自动创建一个新的日志文件。 6. **优化与扩展** - 可以根据需求添加其他appender,比如发送日志到电子邮件或者syslog。 - 使用不同的日志...
在项目资源目录下创建`log4j.properties`配置文件,这是Log4j读取配置信息的地方。我们需要添加以下内容: ```properties # 设置根logger级别 log4j.rootLogger=DEBUG, DB # 配置DB Appender log4j.appender...
在Spring 4.3.7版本中,配置Log4j主要是通过`log4j.properties`或`log4j.xml`文件完成的。这个文件通常位于项目的类路径下,以便于Spring在启动时自动加载。这里我们将重点关注`log4j.properties`文件的配置。 `log...
Log4j配置文件(log4j.properties) Log4j的配置通常在`log4j.properties`文件中进行,以下是一些常见的配置选项: - **rootLogger**:定义日志器的默认行为,包括级别和appender。 ```properties log4j.root...