Ubuntu上WebLogic日志管理技巧
WebLogic在Ubuntu上的日志文件集中存储在域主目录($DOMAIN_HOME,可通过echo $DOMAIN_HOME确认)的logs子目录中,常见日志类型及路径如下:
$DOMAIN_HOME/logs/<server_name>.log(如mydomain/logs/AdminServer.log);$DOMAIN_HOME/logs/access.log;$DOMAIN_HOME/logs/<domain_name>.log(如mydomain/logs/mydomain.log)。tail -f命令实时跟踪日志更新,例如tail -f $DOMAIN_HOME/logs/AdminServer.log,可快速捕捉服务器异常或请求波动;grep命令筛选关键字(如错误、警告),例如grep "ERROR" $DOMAIN_HOME/logs/AdminServer.log或grep "2025-09-19" $DOMAIN_HOME/logs/access.log(按日期过滤);awk提取关键字段并统计,例如统计某时间段内的错误日志数量:awk '/ERROR/ && $1=="2025-09-19" {count++} END {print "Error count:", count}' $DOMAIN_HOME/logs/AdminServer.log。日志轮转可自动归档旧日志、限制文件大小,避免磁盘空间耗尽。常用方法有两种:
Environment→选择Servers→点击目标服务器→进入Logging→General:
Rotation Type:选择By Size(按大小,如500MB)或By Time(按时间,如每天);Files to Retain:保留最近7个轮转文件(避免无限积累);sudo apt-get install logrotate),创建/etc/logrotate.d/weblogic配置文件,添加以下内容:/var/log/weblogic/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 weblogic weblogic
sharedscripts
postrotate
/usr/bin/killall -HUP `cat /var/run/weblogic.pid 2>/dev/null` 2>/dev/null || true
endscript
}
说明:daily表示每天轮转,compress启用gzip压缩,postrotate脚本通过kill -HUP通知WebLogic重新打开日志文件。根据需求调整日志级别,减少无关日志的输出:
$DOMAIN_HOME/config目录,调整java.util.logging.ConsoleHandler.level(控制台输出级别)和.level(全局级别),例如:handlers= java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = INFO
.level= INFO
com.example.myapp.level = FINEST # 特定包设置为FINEST(最详细)
级别从低到高依次为:FINEST(调试)、FINE(信息)、INFO(常规)、WARNING(警告)、ERROR(错误)。cron作业定期检查日志文件大小,例如每天午夜检查是否有超过1GB的日志:crontab(crontab -e),添加:0 0 * * * du -sh $DOMAIN_HOME/logs/*.log | awk '{if($1 > "1G") print "Log file too large: "$2}' | mail -s "WebLogic Log Alert" admin@example.com
Security Realms→myrealm→Auditing,启用AuditingProvider,审计日志默认路径为$DOMAIN_HOME/servers/<adminserver_name>/logs/<domain_name>_audit.log,记录用户登录、权限变更等操作;Servers→<server_name>→Configuration→General中,取消勾选“Send Server Header”(不发送服务器版本信息),避免暴露系统细节。