1. 调整日志级别,过滤无关信息
Tomcat使用java.util.logging框架,通过conf/logging.properties文件配置日志级别。默认级别为INFO,会产生大量常规运行日志,可根据需求调整为更高级别:
SEVERE(最高,仅记录严重错误)、WARNING(警告信息)、ERROR(错误事件)可减少不必要的日志输出;org.apache.catalina、com.yourapp)的日志级别可单独设置(例如org.apache.catalina.level = WARNING),聚焦关键组件的异常信息。2. 配置日志轮转,防止文件膨胀
日志文件长期积累会导致磁盘空间耗尽,需通过轮转策略限制文件大小和数量:
logrotate工具(Linux系统自带)。在/etc/logrotate.d/tomcat中添加配置,例如每天轮转catalina.out,保留7天,压缩旧日志:/path/to/tomcat/logs/catalina.out {
copytruncate daily
rotate 7
compress
missingok
notifempty
}
logging.properties。为文件处理器设置limit(单个文件最大大小,如50MB)和count(保留文件数量,如10个):java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 10
server.xml中的AccessLogValve。针对访问日志,设置rotatable="true"(启用轮转)和maxDays="30"(保留30天):<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
rotatable="true"
maxDays="30"
pattern="%h %l %u %t "%r" %s %b" />
3. 启用异步日志,提升性能
同步日志会阻塞Tomcat主线程,影响性能。从Tomcat 8开始,可使用异步日志处理器AsyncFileHandler:
logging.properties中,将默认的ConsoleHandler或FileHandler替换为AsyncFileHandler:handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
4. 禁用不必要日志,减少IO开销
server.xml中注释AccessLogValve配置,避免生成大量访问日志文件。org.apache.catalina.startup),将其级别设置为WARNING或ERROR,减少冗余信息:org.apache.catalina.startup.level = WARNING
5. 使用专业日志框架,增强管理能力
Tomcat默认的java.util.logging功能有限,建议切换至Log4j或Logback(更灵活、支持按天分割、压缩等功能):
log4j-1.2.17.jar和tomcat-juli-adapters.jar复制到lib目录;conf/logging.properties文件;conf目录下创建log4j.properties或log4j2.xml,配置日志输出格式、级别、目标(如文件、数据库);bin/catalina.sh,添加-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager和-Dlogging.config=file:/path/to/log4j2.xml参数。6. 集成日志分析工具,挖掘日志价值
通过ELK Stack(Elasticsearch+Logstash+Kibana)或Splunk等工具,实现日志的集中存储、搜索、分析和可视化:
catalina.out、访问日志),解析并发送至Elasticsearch;7. 管理日志文件权限,保障安全性
日志文件可能包含敏感信息(如用户请求参数、系统路径),需通过权限控制确保安全:
catalina.sh中设置UMASK值(如UMASK=0022),控制新生成日志文件的默认权限(644,即所有者可读写,其他用户只读);tomcat用户、管理员)可访问。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。