您的位置:首页 >JSP应用在Ubuntu上的日志管理
发布于2026-04-23 阅读(0)
扫一扫,手机访问

要管好日志,首先得知道它们从哪来、往哪去。对于运行在Ubuntu上的JSP应用,日志主要来自两个层面。
catalina.out(记录了标准输出和错误信息)、localhost..log (主机相关日志)、以及 localhost_access_log..txt (访问日志)。这些文件覆盖了从启动、部署到运行期的各种异常和访问轨迹,堪称排查问题的“第一现场”。如果你是通过包管理器安装的Tomcat,日志默认就会写入这个目录。知道了日志去哪,接下来就是如何产生它们。在JSP页面里写日志,有几种主流框架可以选择,各有千秋。
<%@ page import="ja va.util.logging.Logger" %>
<%
Logger log = Logger.getLogger(request.getServletPath());
log.info("JSP loaded, sessionId=" + session.getId());
try {
int x = 1 / 0;
} catch (Exception e) {
log.severe("Unhandled error: " + e.getMessage());
}
%>
log4j
log4j
1.2.17
src/main/resources/log4j.properties),这里配置了一个按大小滚动的文件追加器:
log4j.rootLogger=INFO, FILE
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=/var/log/yourapp/app.log
log4j.appender.FILE.MaxFileSize=10MB
log4j.appender.FILE.MaxBackupIndex=7
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
<%@ page import="org.apache.log4j.Logger" %>
<%
Logger log = Logger.getLogger("MyJspPage");
log.info("Log4j info from JSP");
%>
org.apache.logging.log4j
log4j-api
2.17.1
org.apache.logging.log4j
log4j-core
2.17.1
src/main/resources/log4j2.xml)也更加强大,支持同时按时间和大小触发滚动:
<%@ page import="org.apache.logging.log4j.LogManager, org.apache.logging.log4j.Logger" %>
<%
Logger log = LogManager.getLogger(request.getServletPath());
log.info("Log4j2 info from JSP");
%>
应用能写日志了,但如果不加管理,日志文件会无限膨胀,最终拖垮磁盘。这时候,系统级的日志轮转工具就该上场了。
logrotate工具是管理日志的不二之选。为你的应用创建一个专属配置,比如 /etc/logrotate.d/yourapp:
/var/log/yourapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 tomcat adm
copytruncate
}
copytruncate:这个选项非常关键。对于像Tomcat这样可能长期持有日志文件句柄的Ja va应用,直接移动(move)日志文件会导致日志写入失败。copytruncate会先复制原文件内容,然后清空原文件,从而避免这个问题。copytruncate,改用postrotate脚本发送信号,这样效率更高。create 640 tomcat adm这一行。它确保了新创建的日志文件权限为640,属主是Tomcat的运行用户(通常是tomcat),属组是adm,既保证了Tomcat有写入权限,又便于系统管理员读取。catalina.out。同样可以用logrotate来管理(路径为 /var/log/tomcat9/catalina.out),策略可以设置为按日轮转并压缩,保留7到30天的历史数据,防止单个文件占用过多空间。当日志分散在多台服务器或多个应用中时,集中管理就成了必然选择。同时,掌握几个日常命令能让运维工作事半功倍。
sudo tail -f /var/log/tomcat9/catalina.out
sudo tail -f /var/log/syslog
journalctl -u tomcat9 -f
sudo tail -f /var/log/tomcat9/localhost_access_log.*.txt
df -h
du -sh /var/log/yourapp /var/log/tomcat9
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9