以前写代码不太喜欢用日志,后来项目出问题了想跟踪一下都难,这时候才知道日志的好处。于是好好看了一下,特写个东东记录下。
1、新建一个web项目,在WEB-INF\lib下导入log4j-1.2.15.jar,并build path;
2、在src下新建log4j.properties,内容如下:
#log4j.rootLogger = [ level ] , appenderName, appenderName, ... log4j.rootLogger = info, console, R #level=INFO,all can be output #console is set to be a ConsoleAppender log4j.appender.console = org.apache.log4j.ConsoleAppender #console have four patterns #org.apache.log4j.HTMLLayout #org.apache.log4j.PatternLayout #org.apache.log4j.SimpleLayout #org.apache.log4j.TTCCLayout log4j.appender.console.layout = org.apache.log4j.PatternLayout #define the output type log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n #file is set to output to a extra file log4j.appender.R = org.apache.log4j.DailyRollingFileAppender #the absolute route of the log4j file log4j.appender.R.File = D:/logs/test2.log #the size #log4j.appender.R.MaxFileSize = 500KB #back up a file #log4j.appender.R.MaxBackupIndex = 10 log4j.appender.File.Threshold = ALL log4j.appender.R.layout = org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] - %m%n
3、添加文件测试:
通过普通的main方法写日志:
package com.wjl.test; import org.apache.log4j.Logger; public class TestLog4j { public static Logger logger = Logger.getLogger(TestLog4j.class ); public static void main(String[] args){ logger.info("使用info写入数据\r\n"); logger.debug("使用debug写入数据\r\n"); logger.error("使用error写入数据\r\n"); logger.warn("使用warn写入数据\r\n"); } }
执行main方法之后, D:/logs/test2.log会记录logger写入的信息和具体时间。
通过servlet写日志:
public class TestLog4jServlet extends HttpServlet { Logger logger = Logger.getLogger(TestLog4jServlet.class); public TestLog4jServlet() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); logger.info("----------------log4j测试开始----------------\r\n"); logger.info("使用log4j添加日志信息方便跟踪数据\r\n"); logger.info("----------------log4j测试结束----------------\r\n"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); int name = 10/0;//会出现异常,但是不会让日志文件中记录 System.out.println(name); out.println(name); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void init() throws ServletException {} }
值得一提的是:
a、这样子的logger配置,只会记录手动收入的日志信息,如异常信息、服务器启动信息都不会自动记入日志。
b、按照上面的配置,生成的log文件不会出现在项目的根目录下,而是会出现在:项目所在盘符的根目录下。譬如我项目的目录为:D:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\webapps\TestWeb,生成的日志文件不在TestWeb的logs目录下,而是在D的logs文件夹下。
c、查看网上关于log4j.properties的配置,大部分都需要在web.xml中添加以下代码:
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>600000</param-value> </context-param>
原以为以上代码是使用log4j必须的配置,后来去掉之后再测试发现还是可以用,无论是在以上哪种方式中都可以用,原因是因为我这个配置文件放在src也就是classpath下,项目一启动直接就能找到。
相关推荐
这个压缩包"Log4j及其配置.rar"包含了Log4j的jar包(log4j-1.2.15.jar)以及相关的配置文档,旨在帮助开发者理解和使用Log4j。 一、Log4j介绍 Log4j是Apache软件基金会的一个开源项目,最初由Ceki Gülcü创建。它...
综上所述,`log4j-2.17.1`不仅是一个日志工具,它还是一个强大的日志管理和监控平台,能够适应各种复杂的应用场景,并且具有高度的可配置性和安全性。在开发过程中正确使用Log4j,可以帮助开发者更好地理解和调试...
Log4j的配置通常通过一个名为`log4j.properties`或`log4j.xml`的文件来完成,该文件定义了日志的级别、输出目的地和格式。以下是一个简单的`log4j.properties`示例: ```properties # 设置全局日志级别为INFO log4j...
### Log4j详细配置 #### 一、Log4j简介 Log4j 是一款非常流行的 Java 日志框架,由 Apache 软件基金会所提供。它能够帮助开发者在应用程序中记录日志信息,使得应用程序能够在运行时更加透明地展示其内部状态。Log...
SpringBoot默认使用的是Logback,但通过简单的配置,我们也可以切换到Log4j。 #### 配置Log4j 1. **添加依赖**:首先,在`pom.xml`文件中,添加Log4j的依赖。 ```xml <groupId>org.springframework.boot ...
通常,我们都提供一个名为 log4j.properties 的文件,在第一次调用到 Log4J 时,Log4J 会在类路径中定位这个文件,并读入这个文件完成的配置。 Log4j 有三个主要的组件:Loggers(记录器),Appenders(输出源)和 ...
在Spring 4.3.7版本中,配置Log4j主要是通过`log4j.properties`或`log4j.xml`文件完成的。这个文件通常位于项目的类路径下,以便于Spring在启动时自动加载。这里我们将重点关注`log4j.properties`文件的配置。 `log...
总结,Log4j作为一个强大的日志工具,提供了灵活的配置和丰富的功能,可以帮助开发者更好地管理和理解应用程序的行为。理解并熟练运用Log4j的配置和API,对于提升开发效率和维护质量至关重要。本资料中的jar包和配置...
1. 配置文件:Log4j的配置通常通过一个XML或.properties文件完成,其中包含了Logger、Appender和Layout的详细设定。例如,以下是一个简单的配置示例: ```xml <log4j:configuration xmlns:log4j=...
在本节视频教程中,我们将深入探讨如何在Java项目中集成SSH(Struts、Spring、Hibernate)框架,并结合Maven构建工具以及Bootstrap前端框架,来添加和配置`log4j.properties`日志文件。这个过程对于任何Java开发人员...
在项目中配置Log4j,通常需要一个配置文件(如log4j.properties或log4j.xml),定义日志输出的格式、级别和目标。例如,通过以下配置可以将日志信息写入名为"app.log"的文件: ```properties # log4j.properties ...
- **log4j使用方法.doc**:这是一个文档文件,很可能包含关于如何在实际项目中配置和使用log4j的详细步骤和示例代码。 - **log4j.rar**:这个压缩文件可能是log4j的库文件,或者包含了额外的示例项目、配置文件和...
Log4j2是一个继Log4j之后的日志系统,旨在提供更高效的性能、丰富的日志配置选项和动态日志管理。2.11.1版本修复了一些已知问题,增强了安全性和稳定性,确保了在各种复杂环境下的可靠运行。 1. **Log4j2 API (log4...
例如,2021年的Log4Shell漏洞(CVE-2021-44228)是一个严重的问题,影响了许多依赖Log4j2的系统。不过,2.11.1版本已经包含了对该漏洞的部分修复,但为了完全避免风险,最好更新到最新的安全版本。 6. **扩展性**:...
Log4net是Apache软件基金会开发的一个强大的日志框架,它是log4j(Java版本)在.NET平台上的移植,提供了一套全面的日志记录解决方案。本文将深入探讨log4net的配置及其在.NET应用中的使用。 **1. log4net简介** ...
这个"Kafka+Log4j demo"提供了一个简单的起点,展示了如何将日志系统与实时数据处理平台Kafka相结合,实现日志的高效流转和分析。实际应用中,可以根据具体需求调整配置,如增加多个Kafka主题、设置不同级别的日志...
### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。它主要用于记录Java应用程序的运行时信息,帮助开发者追踪应用程序的行为、调试问题以及进行性能...
在Log4j中,通常通过配置文件(通常是log4j.properties或log4j.xml)来设定各种参数。以下是一个简单的配置示例: ```properties log4j.rootLogger=DEBUG, Console, File log4j.appender.Console=org.apache.log4j....
3. 配置log4j2:创建一个log4j2的配置文件(如log4j2.xml或log4j2.json),定义日志输出的模式和级别。例如,以下是一个简单的配置示例: ```xml <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %...