`

web项目中Log4j不输出到文件问题

    博客分类:
  • java
 
阅读更多
 
 
 
 

 

log4j.properties文件放在classpath文件夹下(即web项目的WEB-INF/classes文件夹下,
 

这样可以保证log4j能够自动识别配置文件,而不用显式的配置)内容如下:

[plain] view plaincopy
  1. log4j.rootLogger=warn, stdout,file  
  2.   
  3. ### direct log messages to stdout ###  
  4. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  5. log4j.appender.stdout.Target=System.out  
  6. #log4j.appender.stdout.Target=System.err  
  7. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  8. #log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  
  9. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] %c{1}:%L - %m%n  
  10.   
  11.   
  12. ### direct messages to file file.log ###  
  13. #log4j.appender.file=org.apache.log4j.FileAppender  
  14. log4j.appender.file=org.apache.log4j.DailyRollingFileAppender  
  15. log4j.appender.file.DatePattern=yyyyMMdd  
  16. log4j.appender.file.File=../logs.log  
  17. log4j.appender.file.layout=org.apache.log4j.PatternLayout  
  18. log4j.appender.file.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %5p %c{1}:%L - %m%n  

问题描述:在控制台程序下可以输出到控制台和logs.log文件当中,但是在web项目当中做的log输出只能输出到控制台,而无法输出到logs.log文件当中。

控制台程序如下:

[java] view plaincopy
  1. public class TestLogger {  
  2.   
  3.     public static Log log = LogFactory.getLog(TestLogger.class);  
  4.   
  5.     public static void main(String[] args) {  
  6.         log.error("怎么回事?");  
  7.     }  
  8.   
  9.     @Test  
  10.     public void test() {  
  11.         log.error("怎么回事?");  
  12.     }  
  13. }  

以上程序可以输出到控制台和logs.log文件当中。但是如下程序:

[java] view plaincopy
  1. public class TestLogs extends HttpServlet {  
  2.     private static final long serialVersionUID = 1L;  
  3.     private static Log log = LogFactory.getLog(TestLogs.class);  
  4.   
  5.     /** 
  6.      * @see HttpServlet#HttpServlet() 
  7.      */  
  8.     public TestLogs() {  
  9.         // TODO Auto-generated constructor stub  
  10.     }  
  11.   
  12.     @Override  
  13.     public void init() throws ServletException {  
  14.         log.error("怎么回事?");  
  15.     }  
  16. }  

输出只能输出到控制台,而无法输出到logs.log文件当中。

问题出在
log4j.appender.file.File=../logs.log

这个配置之上。应更改为:

log4j.appender.file.File=d:/logs.log

即要指定绝对路径而不能指定相对路径!问题解决!

配置成相对路径时,在eclipse 工程跟目录下能生成相应的日志文件,但是web服务器启动时不会记录到根目录下的日志文件,因为web服务器找不到。

纠结好久的问题!!。

 

 

分享到:
评论
4 楼 小二滨 2015-03-06  
非常感谢!我的项目中用了spring的@Component,一开始还以为是注入的时候有什么不对的地方呢。纠结了一上午。还是基本功不够啊。谢谢
3 楼 wen.owen 2014-12-11  
困扰了我半天的问题,非常感谢
2 楼 feiyeguohai 2014-04-14  
confirmAname 写道
那如果我不想使用绝对地址,我想输出到对应项目的某个目录下,怎么解决呢?

网上有很多解决方法,指定保存到web根目录下某个目录下,googling
1 楼 confirmAname 2014-04-13  
那如果我不想使用绝对地址,我想输出到对应项目的某个目录下,怎么解决呢?

相关推荐

    springMVC 日志配置 限制log4j 输出文件大小

    实际项目中经常会用到日志打印 为避免日志打印输出文件过大 消耗服务器内存 需要限制大小

    log4j相关jar

    Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过...

    log4j与web.xml的配置

    log4j与web.xml的配置,并输出到日志文件!有不明白的可以把问题发到我的QQ邮箱:522134398@qq.com

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下,能把当前的日志输出到项目下制定的某文件夹,只要到web.xml配置log4j_save保存日志文件

    linux基于Log4j应用部署日志级别调整.doc

    基于Apache开源项目Log4j的Web应用,Linux部署控制台日志级别调整。可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式log4j除了可以记录程序运行日志信息外还有一重要的功能就是...

    总结的一些关于log4j的文章

    好文共欣赏: ...log4j.xml配置文件设置.doc Log4J快速入门.htm pwosboy -JavaEye技术社区.htm 将系统日志发布到多个文件.htm 请问怎么控制日志的输出啊.htm 怎样关闭Hibernate启动时的DEBUG信息.htm

    log4j日志文件配置

    通过初始化servlet,在文件里输出你想要的自定义信息,方便的调试功能,输出任意级别的错误.这是个jsp的日志文件配置

    web4log:使用 Wicket+Atmosphere 查看 Log4J 的 SocketAppender 发送的日志的 Web 控制台

    Web4Log是一个基于java的web应用项目,使用Apache Wicket作为其前端框架,使用SocketAppender Log4J logger模拟其他应用的日志输出的tail命令。 它可以帮助您在一个基于 Web 的界面中监控来自一个或多个应用程序的 ...

    spring+shiro+ehcache例子

    在web.xml中配置log4j信息打印 (需要自己将log4j的配置文件给打开) 三: 配置文件 查看/src/config/ ,配置文件可观察文件名称理解 四: 登录名为2:可以进行权限的验证,以及shiro的缓存。 登录名为任意...

    tomcat-juli.jar,tomcat-juli-adapters.jar,log4j-1.2.17.jar tomcat 8日志输出

    Tomcat8下使用Log4j接管生成日志文件,按天存放,日志转换成json格式 亲测可用,日志格式如下: {"time":"2017-09-06 10:24:48,356","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deploying...

    .net log4的详细用法

    lLog4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题。日志的作用:将运行过程的步骤、...

    web开发常用jar

    通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器 jxl-2.6.jar 通过java操作excel表格的工具类库 jta-1.1.jar Java事务API,为J2EE平台提供了分布式事务服务 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    内容推荐 Struts是目前非常流行的基于MVC的Java ...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JFinal所需的Jar

    JFinal 自身对第三方无依赖,但当需要第三方功能支持时则需要添加相应的 jar 文件 1:只有 jfinal-bin-xx.... 而log4j.properties 不存在时无日志输出。jdk logger 需要的logging.properties文件 也在此目录下提供了

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    基于MVC的java Web设计与开发

    Struts是目前非常流行的基于MVC的Java Web框架。...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

    精通Struts_基于MVC的Java Web设计与开发

    Struts是目前非常流行的基于MVC的Java Web框架。...第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。

Global site tag (gtag.js) - Google Analytics