1.引言:
《log4j相比System.out的优势》(自己blog中的文章)
Log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日
志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。
程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println
语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这
些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能
再一行行去掉这些注释恢复System.out.println语句。
使用log4j可以很好的处理类似情况。
2)log4j——一个让我发愁了一段时间的东东:
12月份的时候fengy让配置log4j,自己折腾了一个星期都没弄出来,并且很不明白到底是哪个环
节出问题了。因为当时对相对路径,常用接口等都不是很了解,wangwm配出来后,还是不知道自己的为什
么跑不起来。
现在回头想想,一直没有进展,是因为(a)没有java.io的知识;(b)没有java相对路径,绝
对路径的知识;(c)根本不理解要完成配置,必须完成哪些工作。
当时弄不出来,一直就停留在.java文件中的“PropertyConfigurator.configure
(myfile.getPath());”这行代码里了,当时无论怎么都读不到log4j.properties文件,想了很多办法,
包括查如何读取属性文件,如果用相对路径读取属性文件,等等。但这些都是雾里看花,本质没弄清楚,
查再多的细节都不至于事。
现在总算对log4j的配置有了一点认识了!
2.首先分清在各个环境下配置log4j应完成什么事情:
1)java工程环境:
jdk1.4之后就集成了日志功能,D:\Program Files\Java\jre1.5.0_04\lib目录下有logging.properties
文件,如果要使用日志,直接使用或者修改这个logging.properties属性文件就可以了!
2)在tomcat中用log4j配置日志系统:
a)
第一步:下载log4j.jar,并把log4j.jar放入$CATALINA_HOME/common/lib.
第二步:写配置文件log4j.properties:
#log4j.properties
log4j.rootLogger=warn, A1,warnlog
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.warnlog=org.apache.log4j.FileAppender
log4j.appender.warnlog.MaxFileSize=50000KB
log4j.appender.warnlog.MaxBackupIndex=0
log4j.appender.warnlog.file=F:/UserWorkSpace/jiangcm/logs/warn.html
log4j.appender.warnlog.layout=org.apache.log4j.HTMLLayout
log4j.appender.warnlog.layout.ConversionPattern=%d %X %-5p %m%n
log4j.logger.org.apache=warn
第三步:在目录“F:/UserWorkSpace/jiangcm/logs”下新建warn.html文件;
第四步:把该log4j.properties文件放到$CATALINA_HOME/common/classes/目录下.
第五步:重启tomcat.
ok,现在就已经在tomcat中配置好log4j了。
b)如何使用?——在.java文件中得到一个Logger对象,然后就可以直接输出日志了。如下例子所示:
//Bar.java
package com.foo;
import org.apache.log4j.Logger;
public class Bar {
static Logger logger = Logger.getLogger(Bar.class);
public void doIt() {
logger.debug("there is a debug...");
logger.info("there is a info...");
logger.warn("there is a warning...");
}
}
ok!也就是说在tomcat中配置,只需要把log4j.jar和log4j.properties分别放到$CATALINA_HOME/common/
的lib和classes下就ok了!不需要再做别的设置,在.java中直接使用即可。
3)在tomcat的webapp中配置log4j:也就是配置单个的webapp。
这个就有点麻烦了!因为在整个tomcat中配置,tomcat会自动读入log4j.properties;但是在webapp中需
要写一个Servlet,初始化log4j,并且在web.xml中设置给servlet为tomcat启动时也自动启动。
这种方法自己还没有实验成功,不过看过wangwm配置成功了。
不过大致的步骤都是一样的,大概有以下几步吧:
第一步:下载log4j.jar,并把log4j.jar放入webappname/WEB-INF/classes/lib.
第二步:写配置文件log4j.properties:
注:
解决log4j输出的日志文件的位置的配置问题
http://wangluwww.spaces.live.com/blog/
我一直希望自己的web应用的配置能够简化,最好的方式就是打个包后扔哪都能用,即使非得再做一些配
置的话,也希望只是一些连接池的配置信息。这个目标在现在手头的这个项目中也几乎达到了,除了log
文件的位置。
在log4j的配置文件中对于log输出的路径一向都是使用绝对路径,这样就导致在不同的机器上部署时都得
重新定义一下log文件的输出位置。虽说费时不多,可对于我这种宁可少一事,不愿多一事的人来说,总
是觉得有点郁闷。
踏破铁鞋无觅,得来不费功夫。不经意见看到了一个文档,介绍说log4j的配置文件支持windows的环境变
量,格式类似velocity:${env},ok,问题解决:
一般来说我们会将一些初始化的信息放到web.xml中,以便在系统启动时就运行。循此思路,将log文件的
位置放到webapp下面的任意处,如webapp/WEB-INF/conf/logs下面,则可以在log4j.properties文件中做
如下定义:
log4j.appender.R.File=${webappHome}/WEB-INF/conf/logs/sysout.log
其中的${webappHome}即是通过System.setProperty("webappHome", webappHome);实现的,此操作可通过
一初始的servlet进行,具体方法略。
第四步:把该log4j.properties文件放到WEB-INF/classes/目录下.
第五步:写一个初始化的servlet;
第六步:在web.xml中配置该servlet,并设置为自动启动;
第七步:重启tomcat.
具体做的时候可以参考以下资料:
竹笋炒肉 Log4J学习笔记(1)(2)(3)
http://hedong.3322.org/archives/000193.html
http://hedong.3322.org/archives/000195.html
http://hedong.3322.org/archives/000197.html
《log4j相比System.out的优势》(自己blog中的文章)
Log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日
志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。
程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println
语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这
些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能
再一行行去掉这些注释恢复System.out.println语句。
使用log4j可以很好的处理类似情况。
2)log4j——一个让我发愁了一段时间的东东:
12月份的时候fengy让配置log4j,自己折腾了一个星期都没弄出来,并且很不明白到底是哪个环
节出问题了。因为当时对相对路径,常用接口等都不是很了解,wangwm配出来后,还是不知道自己的为什
么跑不起来。
现在回头想想,一直没有进展,是因为(a)没有java.io的知识;(b)没有java相对路径,绝
对路径的知识;(c)根本不理解要完成配置,必须完成哪些工作。
当时弄不出来,一直就停留在.java文件中的“PropertyConfigurator.configure
(myfile.getPath());”这行代码里了,当时无论怎么都读不到log4j.properties文件,想了很多办法,
包括查如何读取属性文件,如果用相对路径读取属性文件,等等。但这些都是雾里看花,本质没弄清楚,
查再多的细节都不至于事。
现在总算对log4j的配置有了一点认识了!
2.首先分清在各个环境下配置log4j应完成什么事情:
1)java工程环境:
jdk1.4之后就集成了日志功能,D:\Program Files\Java\jre1.5.0_04\lib目录下有logging.properties
文件,如果要使用日志,直接使用或者修改这个logging.properties属性文件就可以了!
2)在tomcat中用log4j配置日志系统:
a)
第一步:下载log4j.jar,并把log4j.jar放入$CATALINA_HOME/common/lib.
第二步:写配置文件log4j.properties:
#log4j.properties
log4j.rootLogger=warn, A1,warnlog
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.warnlog=org.apache.log4j.FileAppender
log4j.appender.warnlog.MaxFileSize=50000KB
log4j.appender.warnlog.MaxBackupIndex=0
log4j.appender.warnlog.file=F:/UserWorkSpace/jiangcm/logs/warn.html
log4j.appender.warnlog.layout=org.apache.log4j.HTMLLayout
log4j.appender.warnlog.layout.ConversionPattern=%d %X %-5p %m%n
log4j.logger.org.apache=warn
第三步:在目录“F:/UserWorkSpace/jiangcm/logs”下新建warn.html文件;
第四步:把该log4j.properties文件放到$CATALINA_HOME/common/classes/目录下.
第五步:重启tomcat.
ok,现在就已经在tomcat中配置好log4j了。
b)如何使用?——在.java文件中得到一个Logger对象,然后就可以直接输出日志了。如下例子所示:
//Bar.java
package com.foo;
import org.apache.log4j.Logger;
public class Bar {
static Logger logger = Logger.getLogger(Bar.class);
public void doIt() {
logger.debug("there is a debug...");
logger.info("there is a info...");
logger.warn("there is a warning...");
}
}
ok!也就是说在tomcat中配置,只需要把log4j.jar和log4j.properties分别放到$CATALINA_HOME/common/
的lib和classes下就ok了!不需要再做别的设置,在.java中直接使用即可。
3)在tomcat的webapp中配置log4j:也就是配置单个的webapp。
这个就有点麻烦了!因为在整个tomcat中配置,tomcat会自动读入log4j.properties;但是在webapp中需
要写一个Servlet,初始化log4j,并且在web.xml中设置给servlet为tomcat启动时也自动启动。
这种方法自己还没有实验成功,不过看过wangwm配置成功了。
不过大致的步骤都是一样的,大概有以下几步吧:
第一步:下载log4j.jar,并把log4j.jar放入webappname/WEB-INF/classes/lib.
第二步:写配置文件log4j.properties:
注:
解决log4j输出的日志文件的位置的配置问题
http://wangluwww.spaces.live.com/blog/
我一直希望自己的web应用的配置能够简化,最好的方式就是打个包后扔哪都能用,即使非得再做一些配
置的话,也希望只是一些连接池的配置信息。这个目标在现在手头的这个项目中也几乎达到了,除了log
文件的位置。
在log4j的配置文件中对于log输出的路径一向都是使用绝对路径,这样就导致在不同的机器上部署时都得
重新定义一下log文件的输出位置。虽说费时不多,可对于我这种宁可少一事,不愿多一事的人来说,总
是觉得有点郁闷。
踏破铁鞋无觅,得来不费功夫。不经意见看到了一个文档,介绍说log4j的配置文件支持windows的环境变
量,格式类似velocity:${env},ok,问题解决:
一般来说我们会将一些初始化的信息放到web.xml中,以便在系统启动时就运行。循此思路,将log文件的
位置放到webapp下面的任意处,如webapp/WEB-INF/conf/logs下面,则可以在log4j.properties文件中做
如下定义:
log4j.appender.R.File=${webappHome}/WEB-INF/conf/logs/sysout.log
其中的${webappHome}即是通过System.setProperty("webappHome", webappHome);实现的,此操作可通过
一初始的servlet进行,具体方法略。
第四步:把该log4j.properties文件放到WEB-INF/classes/目录下.
第五步:写一个初始化的servlet;
第六步:在web.xml中配置该servlet,并设置为自动启动;
第七步:重启tomcat.
具体做的时候可以参考以下资料:
竹笋炒肉 Log4J学习笔记(1)(2)(3)
http://hedong.3322.org/archives/000193.html
http://hedong.3322.org/archives/000195.html
http://hedong.3322.org/archives/000197.html
相关推荐
在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...
接下来,`log4j配置说明.txt`文件通常会提供更详细的解释和示例,包括如何配置不同的appender(如FileAppender、RollingFileAppender等),如何定义不同logger的级别,以及如何使用自定义的error handler和filter。...
Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
Log4j是Apache的一个开源项目,它为Java应用程序提供了一个灵活的日志系统。这个系统能够帮助开发者记录程序运行过程中的各种信息,包括错误、警告、调试信息等,这对于软件的调试、性能分析以及问题追踪非常有帮助...
Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...
`log4j配置输出日志案例.doc`文档中应该包含了更详细的配置和实际运行案例,包括如何调整日志级别、设置过滤器、自定义日志格式等。这些案例可以帮助读者更好地理解和应用log4j,解决实际开发中的日志管理问题。 ##...
### Log4j配置与加载方法详解 Log4j是一款由Apache出品的日志记录工具,它提供了灵活的日志级别控制和多样化的日志输出方式,广泛应用于Java应用的开发中。本文将深入解析log4j的配置与加载机制,帮助开发者更好地...
在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入不同的文件,以便于后期分析、排查问题和监控系统状态。 1. **Log4j基本概念** - **Logger**: 日志记录器,是Log4...
Log4j2是Apache软件基金会开发的日志框架Log4j的升级版,它具有更高的性能、灵活性和可配置性。Log4j2支持多种日志记录级别(如DEBUG、INFO、WARN、ERROR),并允许通过XML、JSON、YAML或纯Java配置文件进行灵活配置...
3. 在Tomcat的`web.xml`配置文件中,可能需要配置一个`ContextLoaderListener`,以确保在应用程序启动时加载Log4j配置。 压缩包中的"**lib**"目录可能包含Log4j的必要依赖库,比如`log4j.jar`,这是运行Log4j的日志...
总结,通过以上步骤,你已成功配置了 MyBatis 使用 Log4j 来记录日志,同时将日志输出到后台控制台和文件,这有助于在开发和调试过程中追踪问题,提高代码的可维护性。记得根据实际需求调整日志级别和输出格式,以...
tomcat6.0 配log4j日志的必须文件及配置过程 tomcat6-------lib | |--------tomcat-juli-adapters.jar | |--------log4j.jar | |--------log4j.properites | |----bin |--------tomcat-juli.jar 最后把log4...
log4j2配置文件,按照文件大小划分日志,保存日期天数内的日志,指纹日志命名规则,日志输出等级等功能
理解Log4j2的配置和使用是每个Java开发者必备的技能,这对于日后的故障排查和系统维护至关重要。在实际应用中,你可以根据需求调整配置,例如增加日志过滤规则、添加更多的日志输出目标,或者改变日志格式等。
本篇将详细介绍如何在Spring项目中配置日志系统为Log4j。 首先,我们要明白Log4j是一个功能强大的日志框架,它提供了丰富的日志级别(如DEBUG、INFO、WARN、ERROR和FATAL)以及灵活的日志输出配置。Log4j的配置主要...
使用Slf4j集成Log4j2构建项目日志系统的完美解决方案 Slf4j是简单的日志外观(Facade)模式,它提供了统一的日志接口,使得用户可以选择不同的日志实现。Slf4j的出现使得日志系统的开发变得更加灵活和便捷。Log4j2...
1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...