Tomcat使用Log4j输出catalina.out日志

Tomcat默认的日志是用java.util.logging,有几点不足,文件catalian.out不能像log4j一样按天生成,将越来越大。日志格式和项目中用log4j打出来的不一致,不利于解析。

从tomcat官网(https://tomcat.apache.org/tomcat-7.0-doc/logging.html)上找了下,修改一些配置、替换扩展包即可使用log4j输出catalian.out。

在$CATALINA_BASE/lib下创建log4j.properties文件

log4j.properties的内容如下:

log4j.rootLogger = INFO, CATALINA
# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina.out
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
#log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.CATALINA.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss.SSS} %p [%t] %c | %m%n
# configure customed log to catalina.out
log4j.logger.com.xxxxx = WARN, CATALINA
log4j.logger.org.apache = WARN, CATALINA
log4j.logger.org.mybatis = WARN, CATALINA
log4j.logger.java.sql = WARN, CATALINA
log4j.logger.org.springframework = WARN, CATALINA

更新tomcat相关jar包

下载log4j-1.2.17.jar(http://www.apache.org/dist/logging/log4j/1.2.17/

下载tomcat7的2个jar包:tomcat-juli.jar 和 tomcat-juli-adapters.jar(http://www.apache.org/dist/tomcat/tomcat-7/v7.0.69/bin/extras/ 最好和tomcat版本对应)

把log4j-1.2.17.jar和tomcat-juli-adapters.jar放到$CATALINA_HOME/lib下;用新下载的tomcat-juli.jar包替换掉$CATALINA_HOME/bin/tomcat-juli.jar包。

删除$CATALINA_BASE/conf/logging.properties。

重启tomcat

关于默认的catalina日志格式

如果只想修改tomcat默认的日志格式,替换掉默认的java.util.logging.SimpleFormatter即可。SimpleFormatter类里format格式为LoggingSupport.getSimpleFormat(),它的具体值是:"%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS %1$Tp %2$s%n%4$s: %5$s%6$s%n",其中时间格式可能不是我们期望的,还有里面有个换行%n。比如想改为类似上面log4j的时间格式,可自己重写一个替换类(com.xxx.LogFormatter),format设为"%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS.%1$tL %4$s %2$s %5$s%6$s%n"。修改$CATALINA_BASE/conf/logging.properties

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

改为如下:

java.util.logging.ConsoleHandler.formatter = com.xxx.LogFormatter
org.apache.juli.FileHandler.formatter = com.xxx.LogFormatter

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Tomcat中的Connector配置讲解

    JBoss使用Tomcat作为Web容器,因此在JBoss中对于Web容器的配置也类似于在Tomcat中的配置,主要就是对于 server.xml文件的编辑,在JBoss 5.x中,这个文件位于${JBOSS.HOME}\server\${confifure}\deploy\jbossweb.sar下,其中 configure的值可以是all, default,web,standard, minimal等.下面的代码展示了一个JBoss default配置下的server.xml,由于篇幅原因,

  • Linux下Tomcat的几种运行方式讲解

    Linux下Tomcat的启动.关闭 在Linux系统下,启动和关闭Tomcat使用命令操作. 进入Tomcat下的bin目录 cd /java/tomcat/bin 启动Tomcat命令 ./startup.sh 停止Tomcat服务命令 ./shutdown.sh 执行tomcat ./shutdown.sh 后,虽然tomcat服务不能正常访问了,但是ps -ef | grep tomcat 后,发现tomcat对应的java进程未随web容器关闭而销毁,进而存在僵尸java进程.网上看了

  • Tomcat7.0设置虚拟目录配置虚拟路径的方法讲解

    Tomcat7.0设置虚拟目录 (1)目前,我们的网站站点都是放在默认的目录下:tomcat/webapps/下的.但是,在某种情况下,我们需要把站点放到其他的目录,比如:tomcat所在磁盘的空间不足: 或者为了项目的统一管理,希望放在某个特定的目录下而不是默认的目录. (2)那么我们就是用今天的方法解决这个问题(同样是修改config/server.xml文件): (3)按照下边的图片找到server.xml文件(config-----server.xml记事本打开即可) (4)打开之后拉到

  • tomcat加载jar异常问题的分析与解决

    现象描述: 项目使用springboot启动一个web项目,在启动阶段看到console中出现了异常"1.10.3-1.4.3\hdf5.jar  系统找不到指定的文件",虽然这些异常不影响项目的正常运行,但作为一个严谨的技术人员,看到这些异常就像见到仇人一样,一定要除之而后快. java.io.FileNotFoundException: D:\.m2\repository\org\bytedeco\javacpp-presets\hdf5-platform\1.10.3-1.4.3

  • 服务器Apache与Tomcat和Nginx的理解和对比分析详解

    1 问题 公司服务器用的Apache,后台是php语言,然后服务端用的linux C/C++,会经常听到Apache服务器,然后之前实习的公司服务端用的java,然后依稀记得使用了nginx反向代理服务器和tomcat,请求先经过nginx然后再去通过tomcat转发请求,然后对Apache服务器和tomcat和nginx理解就有点模糊了,然后今天查阅相关资料对使用场景和进行对比 2 Apache.Tomcat .Nginx名词解释 1 ) Apache Apache HTTP服务器是一个模块化

  • Tomcat默认程序发布路径的使用与修改方法讲解

    tomcat7默认的程序发布路径为tomcat/webapps/ROOT/下面. 例子 比如我在tomcat/webapps/ROOT/路径下新建一个jsp文件,则可以直接通过URL为: http://localhost:8080/index.jsp 来访问. 再比如我做文件的上传和下载功能时,可以在ROOT下新建一个FileUpload文件夹,把上传文件的路径设为这个文件夹下,然后上传一个文件test.txt:做下载功能时,点击该文件的下载按钮,可以直接让网页打开一个URL: http://l

  • 详解tomcat设置默认路径致使项目url冲突解决方法

    前言 tomcat作为java容器非常出色,但是依然会有一些避之不及的小坑,在此记录一笔. START 问题 部署多个项目后url路径冲突 情景描述 1.webapps下有两个项目 projectA,projectB.两个项目除开管理信息接口,其余都有安全验证机制. 2.projectA由于未做前后端分离,因此静态资源也存在java项目中.在做静态资源中的接口请求时未写包名,比如登录,js代码会拼接服务器ip+端口+当前设置的url(/login),而未在/login前加上/projectA,所

  • IDEA导入eclipse项目并且部署到tomcat的步骤详解

    前言 本文主要给大家介绍了关于IDEA导入eclipse项目并部署到tomcat的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 步骤如下: 1.首先引入本地项目 我这里是maven项目就直接选择的以maven项目引入,如果选eclipse的话,pom文件不会被初始化,部署tomcat会出问题 这项选完后,就一路next,jdk可以在引入的时候选择,也可以引入后在配置,注意jdk版本要与项目一致 现在项目就从成功引入进来了,可能现在项目会有一大堆红杠,是因为项目还没有配

  • 关于Tomcat服务器无法打开tomcat7w.exe的解决办法

    今天配置Tomcat服务器的时候遇到了一点问题,提供借鉴.关于配置教程网上很多自己参考,如果遇到问题可以查看下面这个链接基本说的比较详细:https://zhidao.baidu.com/question/874079261073744612.html 主要是配置完之后打开tomcat7w.exe仍然打不开,当时以为没有配置好,尝试了很多办法,依然打不开.但是后来发现虽然这个文件打不开但是在cmd命令执行: 执行结果最后出现信息: 这时候才忽然发现,其实早就配置好了Tomcat只是tomcat7

  • Tomcat使用IDEA远程Debug调试的讲解

    Tomcat运行环境:CentOS6.5.Tomcat7.0.IDEA 远程Tomcat设置 1.在tomcat/bin下的catalina.sh上边添加下边的一段设置 CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=60222,suspend=n,server=y" 2.address=60222 这个是后边IDEA设置的时候需要用到的调试端口,可以任意设置一个未使用的端口,但是后边的配置都要一致. IDEA设

随机推荐