首页 > 其他分享 >tomcat 5日志配置笔记(解决中文乱码)

tomcat 5日志配置笔记(解决中文乱码)

时间:2023-09-04 15:33:40浏览次数:52  
标签:catalina tomcat FileHandler juli 乱码 apache org 日志 log4j


作者:fbysss
关键字:Tomcat日志
环境:linux
前言:采用默认的tomcat日志,无法解决中文信息输出乱码的问题。tomcat5 中,可以使用log4j或者java logging配置文件对日志输出进行配置。以下是相关试验记录。

如果common/lib下没有common-logging.jar和log4j.jar

输出正常的日志。catalina.out记录控制台信息,否则,会产生tomcat.log,其内容和catalina.out格式不一样。

如果是bin/catalina.sh start,会记录catalina.out文件

如果是bin/catalina.sh run,则会把内容输出到控制台,不产生catalina.out,产生

catalina.2008-08-04.log这样的文件,但是里面的内容要比catalina.out少。

实验用的文件内容如下

log4j.properties

log4j.rootLogger=info,Console,R

 

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout=org.apache.log4j.PatternLayout

#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.appender.Console.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n

#保证中文无乱码

log4j.appender.Console.Encoding=GBK

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

log4j.appender.R.File=${catalina.home}/logs/tomcat.log

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %5p %c{1}(%L):? %m%n

log4j.appender.R.Encoding=GBK

 

#log4j.logger.org.apache=info, R

log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R

log4j.logger.org.apache.catalina.core=info, R

log4j.logger.org.apache.catalina.session=info, R

导致的结果是tomcat.log输出了两遍,即每一条都重复输出

后来发现,重复输出的元凶,实际上是这个配置文件本身有问题。红色字体这几句有重叠的成分,注释掉第一句,INFO不重复了。

还要注意一点:如果应用目录下有log4j.properties文件(具体目录,实验时就是在应用的根目录下,比如fbysssProject/log4j.properties),当删除tomcat/common/classes/log4j.properties之后,只要lib里面那两个包还在,tomcat会在应用目录里面找log4j.properites。这样,还会生成tomcat.log。

注意:虽然文档中有log4j.appender.R.File=${catalina.home}/logs/tomcat.log ,但实际上这个文件是固定的,改了没有用,始终会生成到tomcat.log里面。

还有就是tomcat.log尚不能替代catalina.out,因为其不能输出各应用的日志。

 

进一步的实验,事情变得越来越离谱:把tomcat/common/classes和应用根目录的log4j.properties都删除之后,tomcat.log还在更新!为何?

后来发现,在应用目录的上级目录里面还有一个log4j.properties,tomcat居然找到这里去了?真是匪夷所思,删除这个文件之后,tomcat.log终于消失了。而且,这里的配置文件,可以修改tomcat.log为其他文件名。

回头一想,是不是开始应用根目录的那个文件实际上没作用?实验表明,的确,也就是说上面的斜体字部分是误解。正确的是:两个包在,还要能够找到log4j.properties,才会生成指定的log文件(不一定是要tomcat.log)。

想把应用的类日志也输出到tomcat.log,尝试把应用里面。

增加

log4j.logger.org.apache.jsp=info, R

log4j.logger.org.hibernate=info,R

log4j.logger.com.fbysssProject=info,R

log4j.logger.org.apache.commons = ERROR,R

 

log4j.rootLogger=info, R

log4j.logger.org.dom4j=info

log4j.logger.JDBCExceptionReporter=info

没有成功

结论:tomcat日志只能记录tomcat本身的日志,要做到日志与控制台显示完全一样,几乎不可能,(当然,如果不要求看控制台,用catalina.sh start方式,可以查看catalina.out,这个和控制台内容一样。)折衷办法是在各自的应用中自己写日志配置,结合起来看。

java logging方式:

tomcat/conf/logging.properties:

 

# the License.  You may obtain a copy of the License at

#

#     http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

 

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4adimin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ,org.apache.juli.FileHandler

 

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ,org.apache.juli.FileHandler

#这句可以保证输出中文没有乱码

java.util.logging.ConsoleHandler.encoding=GBK

############################################################

# Handler specific properties.

# Describes specific configuration info for Handlers.

############################################################

 

org.apache.juli.FileHandler.level = FINE

org.apache.juli.FileHandler.directory = ${catalina.base}/logs

org.apache.juli.FileHandler.prefix = sout.

org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter

1catalina.org.apache.juli.FileHandler.level = FINE

1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

1catalina.org.apache.juli.FileHandler.prefix = catalina.

 

2localhost.org.apache.juli.FileHandler.level = FINE

2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

2localhost.org.apache.juli.FileHandler.prefix = localhost.

 

3manager.org.apache.juli.FileHandler.level = FINE

3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

3manager.org.apache.juli.FileHandler.prefix = manager.

 

4admin.org.apache.juli.FileHandler.level = FINE

4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

4admin.org.apache.juli.FileHandler.prefix = admin.

 

 

写入文件sout.log,但是还是不全。

编辑conf/logging.properties

handlers节加入org.apache.juli.FileHandler

.handlers节加入org.apache.juli.FileHandler

 

任意位置写入:

org.apache.juli.FileHandler.level = FINE

#位置

org.apache.juli.FileHandler.directory = ${catalina.base}/logs

#日志前缀

org.apache.juli.FileHandler.prefix = sout.

org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter

 

 

“ 一闪而过”错误

在windows下,有时候tomcat出错,一闪而过,还看不到信息,解决办法是使用catalina.bat run,可以看到出错信息。

标签:catalina,tomcat,FileHandler,juli,乱码,apache,org,日志,log4j
From: https://blog.51cto.com/u_16245757/7351192

相关文章

  • Tomcat 项目迁移至weblogic 10笔记
    作者:fbysss关键字:TomcatWeblogicOS:WindowsXPWebAppServer:Tomat5.5WebLogic server10(中文版)IDE:Beaworkshopforweblogicplatform。一.IDE注意事项创建动态web项目,选择是否共享j2ee库,如果共享,则需要域的共享库里面包含项目所需的库,比如beeHivenetUi;不共享,则将所需的库......
  • SIEM 中不同类型日志监控及分析
    安全信息和事件管理(SIEM)解决方案通过监控来自网络的不同类型的数据来确保组织网络的健康安全状况,日志数据记录设备上发生的每个活动以及整个网络中的应用程序,若要评估网络的安全状况,SIEM解决方案必须收集和分析不同类型的日志数据。什么是日志分析日志分析是调查收集的日志以识别......
  • cmd控制台中文乱码
    切换活动页编码cmd控制台中执行:chcp65001C++代码中执行system("chcp65001");注:CHCP是一个计算机指令,能够显示或设置活动代码页编号。代码页 描述65001 UTF-8代码页950繁体中文936简体中文默认的GBK437MS-DOS美国英语......
  • 【转】最优日志系统,Log4j 还是 Logback?
    引言在Java项目开发中,一个正式的项目,一定离不开日志的输出,而常用的日志输出框架又绕不开Log4j和Loback。Log4jApacheLog4j是一种Java日志记录工具,它是ApacheSoftwareFoundation下的一个开源项目。Log4j旨在帮助程序员在其应用程序中记录日志,并且能够根据需要配置......
  • Linux日志管理经验总结(crontab+logrotate)
    Linux系统-部署-运维系列导航 日志管理目标日志的管理,一般包括两大部分日志内容,合理的日志内容(日志锚点,内容格式,等)可以为应用服务的执行记录、问题排查提供最有力的帮助日志存档规则,包括日志分割方式(按日期、按文件大小,等),日志存档数量,如只保存最近一个月,等对于自行开发的......
  • 2023.9 模拟赛日志
    谁提出的集训从9.4开始啊?哦是我们的沈队啊,%%%SS230902A构造,证明值得学习B01分数规划,贪心,结论题,没有做出来比较烦躁C树形DP,切入角度值得学习D图论题?数所有选\(k\)个点为根最小树形图的边权和???\(100+20+60(40)+30=210(190)\),括号内是估分,没有括号就是完全符合事实......
  • SQL Server 日志清理
    因为数据量较大,对数据库表操作比较多,日志的模式,又是完全模式,所以会产生较大的日志文件,那么怎么清理呢下面给大家介绍3种方式:1、执⾏SQL命令先查询日志中文件名和大小USE数据库名GOSELECTfile_id,name,size,*FROMsys.database_files;可以看到其中name字段为数据库日志......
  • POSTGRESQL WAL 日志问题合集之WAL 如何解析
    最近经常有同学会问关于WAL的问题,问能不能总结一下,这里我们总结关于WALwrite aheadlog的问题的一个系列在PostgreSQL writeaheadlog的解析部分,pg_waldump是必须被提起的工具,并且这个工具在不同的版本中都有变化,pg_waldump工具最早是产生于PG9.3作为一个contribmodule......
  • javaweb中解决get与post中文乱码问题的方式
    2023-09-03packagecom.hh.RequestAndResponse;/***@authorhh*@version1.0*@DATE2023-09-0312:51:44*/importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servl......
  • Apache IoTDB开发之日志可视化工具
    工具简介与其他软件系统一样,IoTDB在运行时生成各种日志。调试和跟踪日志可以帮助开发人员跟踪IoTDB的状态,并挖掘出潜在或不清楚的错误信息日志可以告诉系统的健康程度,并指出数据库参数优化的方向。警告和错误日志指示系统处于危险状态或发生意外情况,并帮助数据库管理员在系统崩溃......