1. 日志文件定位
WebLogic在Debian环境中的日志文件默认存储在域目录的servers/<server_name>/logs/子目录下,主要包括三类核心日志:
/u01/oracle/user_projects/domains/<domain_name>/servers/<server_name>/logs/)。2. 日志级别配置
通过调整日志级别可控制日志输出的详细程度,减少不必要的日志量(如生产环境建议设置为INFO或WARN,开发环境可设置为DEBUG)。配置方法有两种:
config/子目录下(如/u01/oracle/user_projects/domains/<domain_name>/config/logging.properties),调整以下参数:.level= INFO # 全局日志级别(可选:TRACE、DEBUG、INFO、WARN、ERROR、FATAL)
com.example.level = FINEST # 特定包/类的日志级别(如需详细调试某个模块)
handlers= java.util.logging.ConsoleHandler # 日志输出处理器(控制台/文件)
java.util.logging.ConsoleHandler.level = INFO # 控制台日志级别
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
3. 日志轮转设置
日志轮转可防止日志文件无限增长,避免占用过多磁盘空间。Debian环境下推荐两种方式:
sudo apt-get install logrotate;/etc/logrotate.d/weblogic),内容示例如下:/u01/oracle/user_projects/domains/<domain_name>/servers/<server_name>/logs/*.log {
daily # 每天轮转一次
rotate 7 # 保留最近7个日志文件
compress # 压缩旧日志(节省空间)
missingok # 若日志文件不存在,不报错
notifempty # 若日志文件为空,不轮转
create 640 weblogic weblogic # 新日志文件权限(属主:weblogic,属组:weblogic)
sharedscripts # 所有日志轮转完成后执行postrotate脚本
postrotate
/usr/bin/killall -HUP $(pgrep -f "weblogic.Server") # 发送HUP信号,让WebLogic重新打开日志文件
endscript
}
logging.properties文件中的FileHandler参数,实现应用级日志轮转:java.util.logging.FileHandler.pattern = /u01/oracle/user_projects/domains/<domain_name>/servers/<server_name>/logs/server.%g.log # 轮转文件命名(%g为生成序号)
java.util.logging.FileHandler.limit = 50000000 # 单个日志文件最大大小(50MB)
java.util.logging.FileHandler.count = 5 # 保留的历史日志文件数量
修改后需重启WebLogic服务器使配置生效。4. 日志监控与分析
tail命令实时查看最新日志(如tail -f /u01/oracle/user_projects/domains/<domain_name>/servers/<server_name>/logs/server.log);grep命令过滤特定关键字(如grep "ERROR" /u01/oracle/user_projects/domains/<domain_name>/servers/<server_name>/logs/server.log,查看错误日志);sudo apt-get install elasticsearch logstash kibana;/etc/logstash/conf.d/weblogic.conf文件,定义输入(File插件读取WebLogic日志)、过滤(Grok插件解析日志格式)、输出(Elasticsearch插件存储到ES);sudo systemctl start elasticsearch logstash kibana;http://<server_ip>:5601),配置索引模式(如weblogic-*),即可通过可视化 dashboard 分析日志。5. 日志清理与维护
定期清理旧日志可释放磁盘空间,推荐两种方式:
find命令删除超过指定天数的日志文件(如删除30天前的.log文件):find /u01/oracle/user_projects/domains/<domain_name>/servers/<server_name>/logs/ -type f -name "*.log" -mtime +30 -exec rm -f {} \;
/path/to/cleanup_script.sh),并通过crontab设置定时任务(每天凌晨1点执行):crontab -e
添加以下内容:0 1 * * * /path/to/cleanup_script.sh
注意:清理前需确认日志文件已通过logrotate归档,避免误删未备份的重要日志。6. 安全配置
chown weblogic:weblogic /u01/oracle/user_projects/domains/<domain_name>/servers/<server_name>/logs/*.log,设置属主为weblogic,属组为weblogic,权限为640),避免未授权用户查看敏感日志;ssl参数,或使用rsyslog的omfwd模块加密);<domain_name>/servers/<adminserver_name>/logs/<domain_name>_audit.log中。