日志处理(一)
日志处理(一)
背景描述:
线上一台服务器突然无法服务,去服务器上一看,tomcat见面上疯狂打印错误日志(windows服务器)。同事一开始认为是日志打印太频繁占用了系统资源,希望通过关闭日志输出来解决问题。(但是后来发现问题并不是打印日志引发)看到组内的代码关于日志的处理这么浮夸,而我自己也在日志的处理问题上吃了不少亏。决定深入的研究一下日志问题。
1.目标
关于日志处理,我有以下几个问题需要弄清楚:
1.1log4j的详细配置
我们的项目最常用log4j记录日志,以前都是抄别人的配置,现在我下定决心要弄清楚所有的配置。
有以下几点比较重要的配置方式:
- 定期回滚日志文件
简单易用,便于查询。注意设置大小,监控磁盘空间是否够用。
- socket
统一采集日志。(我没用过,我担心占用过多系统资源)
- 自定义appender
根据业务,将日志记录到不同的路径。
1.2tomcat日志调整
打开tomcat下的startup.sh
和startup.bat
。里面都是在调用catalina.sh
或catalina.bat
。
打开catalina.bat
,看到日志的相关配置:
rem LOGGING_CONFIG (Optional) Override Tomcat's logging config file
rem Example (all one line)
rem set LOGGING_CONFIG="-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties"
rem
rem LOGGING_MANAGER (Optional) Override Tomcat's logging manager
rem Example (all one line)
rem set LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
rem
rem TITLE (Optional) Specify the title of Tomcat window. The default
rem TITLE is Tomcat if it's not specified.
rem Example (all one line)
rem set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%]
rem ---------------------------------------------------------------------------
我们就知道了tomcat使用的日志类和配置文件的路径。
然后随便搜搜你就知道该如何配置了。
我觉得tomcat的日志就该全关了。
如果服务是部署在linux上,还可以修改catalina.sh
,将日志路径指向null。