CentOS Java日志配置指南
一、选择日志框架
- 常用框架:Log4j、Logback(推荐)、SLF4J。
- 配置文件:
- Log4j:
log4j.properties或log4j2.xml。 - Logback:
logback.xml。
- Log4j:
二、配置日志输出
- 输出位置:控制台、文件、远程服务器(如通过SocketAppender)。
- 文件路径:在配置文件中指定,如
/var/log/myapp.log。 - 格式设置:使用
PatternLayout定义格式,例如%d{ISO8601} %-5p [%t] %c - %m%n。
三、日志滚动策略
- 按大小/时间滚动:
- Log4j:配置
RollingFileAppender的MaxFileSize(如10MB)和MaxBackupIndex(保留份数)。 - Logback:使用
SizeAndTimeBasedRollingPolicy,设置maxFileSize、maxHistory(如30天)。
- Log4j:配置
- 工具辅助:通过
logrotate管理日志归档与压缩,配置文件位于/etc/logrotate.d/。示例配置:/var/log/myapp/*.log { daily rotate 7 compress missingok notifempty }
四、日志级别管理
- 级别设置:DEBUG、INFO、WARN、ERROR、FATAL,根据环境调整(生产环境建议INFO及以上)。
- 动态调整:部分框架支持运行时修改级别(如Logback的
JMXConfigurator)。
五、集中式日志管理(可选)
- ELK Stack:
- Logstash:收集日志并发送至Elasticsearch。
- Kibana:可视化分析日志,支持仪表盘和告警。
- 配置方式:在Logstash中通过
input插件接收Java应用日志,需在Java端配置输出到Logstash(如Socket或HTTP协议)。
六、监控与告警
- 工具集成:使用Prometheus+Grafana监控日志指标,或通过ELK的告警功能设置规则。
- 关键指标:日志量异常、错误日志频率、磁盘占用等。
七、安全注意事项
- 敏感信息过滤:避免在日志中记录密码、身份证号等,可使用脱敏工具或框架配置。
- 权限控制:确保日志文件权限仅对必要用户开放(如
chmod 640)。