在Web应用中一般使用一个专门的Servlet来完成Log4J的配置,并保证在web.xml的配置中,这个Servlet位于其它Servlet之前,以便在Servlet和jsp中调用。下面是这个servlet,代码如下:
import org.apache.log4j.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Log4jInit extends HttpServlet {
public void init() {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");//配置文件位置
if(file != null) {
PropertyConfigurator.configure(prefix+file);
}
}
}
此servlet在web.xml中配置:
</web-app>
...........
servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>example.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
...........
</web-app>
用来配置log4J的属性文件:
log4j.rootLogger=debug, A1 , R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
这个配置文件指定了两个输出源A1和R。前者把日志信息输出到控制台,后者是一个轮转日志文件。最大的文件是100KB,当一个日志文件达到最大尺寸时,Log4J会自动把example.log重命名为example.log.1,然后重建一个新的 example.log文件,依次轮转。
测试文件test.jsp:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="org.apache.log4j.*" %>
<%
Logger logger = Logger.getLogger("test.jsp");
logger.debug("befor test");
%>
<h1>This is login test</h1>
<% logger.info("after test");%>
PatternLayout的格式
%r 自程序开始后消耗的毫秒数
%t 表示日志记录请求生成的线程
%p 表示日志语句的优先级别
%c 日志信息所在的类名
%m%n 表示日志信息的内容
%r 自应用启动到输出该log信息耗费的毫秒数
%d 日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
Spring 中log4j配置
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
文件保存的地方
log4j.appender.R.File=${webapp.root}/logs/chengchuang.log
分享到:
相关推荐
在Spring项目中,我们可以使用Spring的`PropertyPlaceholderConfigurer`来加载外部化的log4j配置,这样在不同环境中可以使用不同的配置文件。在Spring的配置文件`applicationContext.xml`中添加以下代码: ```xml ...
3. **在Spring中使用Log4j**:在Spring配置文件(如`applicationContext.xml`)中,启用Log4j支持: ```xml <context:property-placeholder location="classpath:log4j.properties" /> ``` 4. **在代码中注入...
综上所述,"spring简单注解+log4j记录日志"这个主题涵盖了Spring框架中的注解使用、Log4j日志系统以及AOP的应用。通过学习这些内容,初学者可以更好地理解和实践Spring框架,同时提高代码的可维护性和调试效率。在...
接着,要在Spring应用中使用Log4j,你需要在Spring的配置文件(如`applicationContext.xml`)中引入Log4j的依赖。通常,我们会在Spring的配置文件中定义一个Bean,让Spring自动初始化Log4j: ```xml ...
本项目"SpringLog4JDemo"将包含一个完整的Eclipse工程,其中展示了如何在Spring环境中配置Log4J,以及如何在代码中使用日志。通过这个项目,你可以学习到如何结合Spring和Log4J进行日志管理,提升应用的可维护性和...
在Spring框架中,我们通常会结合使用Log4j来实现日志记录,因为Log4j具有高度可配置性、性能优秀和功能丰富的特点。 Log4j是Apache软件基金会的一个项目,它是一个强大的日志工具,支持多种输出格式,包括控制台、...
4. **在 Spring MVC 中使用 Log4j** - 首先,需要在 Spring 配置文件中引入 Log4j 的依赖,例如使用 `PropertyPlaceholderConfigurer` 加载 `log4j.properties` 文件。 - 接着,在 Spring MVC 控制器、服务类或...
总之,将Spring的日志配置为Log4j,涉及到引入Log4j库、编写`log4j.properties`配置文件、以及在Spring配置文件中声明使用Log4j。理解这些步骤和配置项对于优化日志记录,排查问题以及监控系统运行状态至关重要。
总之,Spring Boot Starter Log4j2使得在Spring Boot项目中集成和使用Log4j2变得简单易行。通过合理配置,我们可以实现灵活的日志管理,满足各种开发场景的需求。在实际开发中,掌握Log4j2的配置和使用,能帮助我们...
3. **在Spring MVC中使用Log4j**:在Spring MVC的Controller或其他需要记录日志的类中,引入`org.apache.log4j.Logger`,并创建一个实例。例如: ```java import org.apache.log4j.Logger; public class ...
本文将详细讲解Log4j的配置以及如何在Spring项目中使用Log4j。 **一、Log4j基础知识** 1. **Log4j组件**:Log4j主要由三个核心组件构成——Logger(日志器)、Appender(输出器)和Layout(布局器)。 - Logger:...
Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...
使用Spring时,开发者还需要注意与其他Java库的兼容性,例如JDBC驱动、ORM框架(如Hibernate、MyBatis)的jar包,以及用于日志记录的log4j.jar、log4j-api.jar和log4j-core.jar。在实际项目中,这些jar包通常会被...
Spring框架通过一系列的配置选项来支持Log4J,这些配置通常位于`web.xml`文件中。以下是一些关键的配置参数: 1. **`webAppRootKey`**: - **作用**:指定用于获取Web应用根目录路径的环境变量名称。 - **示例**...
使用这个BurpSuite插件,可以有效地帮助安全从业者在目标系统中识别出Log4j、Log4j2和Fastjson的使用,并评估是否存在安全风险。无论是老版还是新版的BurpSuite,该插件都能兼容,这意味着它具有良好的兼容性和实用...
这个配置引入了 Log4j 依赖项,以便在项目中使用 Log4j。 五、 Log4j 的输出级别和输出目的地 Log4j 的输出级别和输出目的地是配置 Log4j 的两个重要方面。输出级别定义了日志信息的严重程度,而输出目的地定义了...
- 这里需要注意的是,上面的示例代码中使用的是GBK编码。如果你的应用程序使用的是其他编码格式(如UTF-8),那么应该相应地修改这里的编码设置。 4. **保存并重启服务**: - 修改完配置文件后,记得保存更改并...
总结来说,Spring 和 Log4j 的整合使得我们能够在 Spring 应用程序中方便地管理和控制日志,同时通过配置 Log4j 文件,可以针对性地获取 Hibernate 和 Proxool 的运行信息,对于开发和维护高质量的 Java 应用程序...
8. **在代码中使用Log4j**:在Java代码中,首先需要导入`org.apache.log4j.Logger`,然后声明一个logger实例,通过`Logger.getLogger(ClassName.class)`获取。在需要输出日志的地方,使用`logger.info("信息")`或`...