tomcat 日志用log4j管理

            近段时间发现tomcat 经常突然down掉,在网上查了一下,说法大都相同,内存溢出,数据库连接异常等 

其中有个是tomcat日志文件过大。  ........我也忘了是怎么弄的日志文件过大上面了 反正起因是因为tomcat经常无故挂掉。

下面直说log4j管理tomcat日志:

基本的也就是tomcat官网给出的文档:

下面是转别人翻译官网上的文档

转自:点击打开链接

本文介绍如何配置tomcat使用log4j来替代java.util.logging来产生tomcat本身的日志信息。

说明:只有当我们需要重新配置tomcat来使用Apache log4j来记录tomcat本身的日志时才需要这部分所讲内容。当仅仅想在我们的web应用程序中使用log4j时这些操作不是必要的。如果是仅仅想在web应用中使用log4j,只要把log4j.jar和log4j.properties放到web应用的WEB-INF/lib和WEB-INF/classes目录下即可。

 

下面的步骤介绍了在tomcat中配置log4j来输出tomcat内部日志。

1、创建一个包含下面内容的名为log4j.properties的文件,并且把它存储在$CATALINA_BASE/lib目录下。

[java]  view plain copy
  1. log4j.rootLogger=INFO, CATALINA  
  2.   
  3. # Define all the appenders  
  4. log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender  
  5. log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.  
  6. log4j.appender.CATALINA.Append=true  
  7. log4j.appender.CATALINA.Encoding=UTF-8  
  8. # Roll-over the log once per day  
  9. log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log'  
  10. log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout  
  11. log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n  
  12.   
  13. log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender  
  14. log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.  
  15. log4j.appender.LOCALHOST.Append=true  
  16. log4j.appender.LOCALHOST.Encoding=UTF-8  
  17. log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log'  
  18. log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout  
  19. log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n  
  20.   
  21. log4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppender  
  22. log4j.appender.MANAGER.File=${catalina.base}/logs/manager.  
  23. log4j.appender.MANAGER.Append=true  
  24. log4j.appender.MANAGER.Encoding=UTF-8  
  25. log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd'.log'  
  26. log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout  
  27. log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n  
  28.   
  29. log4j.appender.HOST-MANAGER=org.apache.log4j.DailyRollingFileAppender  
  30. log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager.  
  31. log4j.appender.HOST-MANAGER.Append=true  
  32. log4j.appender.HOST-MANAGER.Encoding=UTF-8  
  33. log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-dd'.log'  
  34. log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout  
  35. log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n  
  36.   
  37. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
  38. log4j.appender.CONSOLE.Encoding=UTF-8  
  39. log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout  
  40. log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n  
  41.   
  42. # Configure which loggers log to which appenders  
  43. log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST  
  44. log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=\  
  45.   INFO, MANAGER  
  46. log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=\  
  47.   INFO, HOST-MANAGER  

2、下载Log4j(1.2或者是更高版本)。

3、下载或者是编译tomcat-juli.jar和tomcat-juli-adapters.jar,这两个组件对于tomcat来说是附件组件。详情查看附件组件文档

这个tomcat-juli.jar与tomcat默认的同名文件不同。它包括Apache Commons Logging的实现,所以我们可以用它来呈现log4j日志信息并且配置log4j。

4、如果我们想在tomcat全局内配置并且使用log4j:

   l  把log4j.jar放到$CATALINA_HOME/lib下面;

   l  使用从tomcat官方网站上下载的附加组件tomcat-juli.jar替换$CATALINA_HOME/bin/tomcat-juli.jar;

   l  把附件组件tomcat-juli-adapters.jar放到$CATALINA_HOME/lib目录下;

5、如果我们的tomcat拥有不同的$CATALINA_HOME和$CATALINA_BASE目录,并且我们只想在$CATALINA_BASE目录下配置使用log4j。

   l  如果$CATALINA_BASE/bin和$CATALINA_BASE/lib目录不存在,那么首先创建它们;

   l  把log4j.jar放到$CATALINA_BASE/lib目录下;

   l  使用附加的tomcat-juli.jar替换$CATALINA_BASE/bin/tomcat-juli.jar;

   l  把附加的tomcat-juli-adapters.jar放到$CATALINA_BASE/lib目录下;

   l  如果我们是在安全模式下运行,我们需要编辑$CATALINA_BASE/conf/catalina.policy文件使tomcat可以使用不同的tomcat-juli.jar;

   l  旧版本的tomcat.juli.jar仍然被bootstrap的manifest引用,因此它会在tomcat的类路径下隐式的表现出来。tomcat启动脚本把$CATALINA_BASE/bin/tomcat-juli.jar配置在bootstrap.jar前面,所以它应该有更高的优先级。因此考虑到移除不需要的tomcat-juli.jar副本(把它copy到不使用log4j的其它任何$CATALINA_BASE目录下),这应该没什么问题。Tomcat 7不存在这个问题。

6、删除$CATALINA_BASE/conf/logging.properties文件来防止java.util.logging产生零长度的日志文件。

7、启动tomcat。


我看了好多博客或者文档都是只弄到这里,或者是官方文档就是这样的原因。

配置好发现这样配置只是吧tomcat自己的日志管理起来,我其实想管理所有日志,包括tomcat上项目的日志。

然后就是修改catalina.sh 文件内容 

1.把"logging.properties"改为"log4j.properties"

这样发布在tomcat上的项目日志也会在catalina.out中打出

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat8下使用Log4j接管生成日志文件,按天存放,日志转换成json格式 亲测可用,日志格式如下: {"time":"2017-09-06 10:24:48,356","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deploying web application directory C:\Users\admin\Desktop\Tomcat8\webapps\docs"} {"time":"2017-09-06 10:24:48,375","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deployment of web application directory C:\Users\admin\Desktop\Tomcat8\webapps\docs has finished in 19 ms"} {"time":"2017-09-06 10:24:48,376","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deploying web application directory C:\Users\admin\Desktop\Tomcat8\webapps\examples"} {"time":"2017-09-06 10:24:48,648","logtype":"INFO","loginfo":"org.apache.catalina.core.ContainerBase.[Catalina].[bms-res.hzfh.com].[/examples]:ContextListener: contextInitialized()"} {"time":"2017-09-06 10:24:48,649","logtype":"INFO","loginfo":"org.apache.catalina.core.ContainerBase.[Catalina].[bms-res.hzfh.com].[/examples]:SessionListener: contextInitialized()"} {"time":"2017-09-06 10:24:48,654","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deployment of web application directory C:\Users\admin\Desktop\Tomcat8\webapps\examples has finished in 279 ms"} {"time":"2017-09-06 10:24:48,654","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deploying web application directory C:\Users\admin\Desktop\Tomcat8\webapps\host-manager"} {"time":"2017-09-06 10:24:48,682","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deployment of web application directory C:\Users\admin\Desktop\Tomcat8\webapps\host-manager has finished in 28 ms"} {"time":"2017-09-06 10:24:48,682","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deploying web application directory C:\Users\admin\Desktop\Tomcat8\webapps\manager"} {"time":"2017-09-06 10:24:48,711","logtype":"INFO","loginfo":"org.apache.catalina.startup.HostConfig:Deployment of web application directory C:\Users\admin\Desktop\Tomcat8\webapps\manager has finished in 29 ms"} {"time":"2017-09-06 10:24:48,744","logtype":"INFO","loginfo":"org.apache.coyote.http11.Http11AprProtocol:Starting ProtocolHandler ["http-apr-80"]"} {"time":"2017-09-06 10:24:48,759","logtype":"INFO","loginfo":"org.apache.coyote.ajp.AjpAprProtocol:Starting ProtocolHandler ["ajp-apr-8009"]"} {"time":"2017-09-06 10:24:48,760","logtype":"INFO","loginfo":"org.apache.catalina.startup.Catalina:Server startup in 20357 ms"}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值