Debian环境下JSP日志管理实践
一 基础架构与日志来源
| 日志来源 | 典型路径 | 主要用途 |
|---|---|---|
| Tomcat 容器日志 | 系统包安装:/var/log/tomcat9/catalina.out、/var/log/tomcat9/localhost. |
启动/关闭、部署、系统级错误、HTTP 访问与应用本地日志 |
| 应用日志(JSP/Java) | 由日志框架配置(如文件、控制台、Syslog) | 业务关键事件、异常堆栈、审计信息 |
| 反向代理/Web 服务器 | Nginx:/var/log/nginx/access.log、/var/log/nginx/error.log;Apache:/var/log/apache2/access.log、/var/log/apache2/error.log | 前端访问与错误、静态资源与反向代理问题定位 |
| 以上路径与用途适用于 Debian 上的常见部署方式,便于快速定位问题。 |
二 查看与检索日志
sudo tail -f /var/log/tomcat9/catalina.outsudo tail -f /opt/apache-tomcat-9.x.x/logs/catalina.outgrep -i "error" /var/log/tomcat9/catalina.outsudo journalctl -u tomcat9 -f三 应用日志框架选型与配置
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.x.x</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.x.x</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="File" fileName="/var/log/myapp/app.log" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
<%@ page import="org.apache.logging.log4j.LogManager" %>
<%@ page import="org.apache.logging.log4j.Logger" %>
<%
Logger logger = LogManager.getLogger(request.getServletPath());
logger.info("JSP page visited: " + request.getRequestURI());
%>
四 日志轮转与保留策略
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 tomcat adm
postrotate
systemctl reload tomcat9 >/dev/null 2>&1 || true
endscript
}
reload 通知 Tomcat 重新打开日志文件句柄(避免日志写入旧文件)。五 集中式日志与运维建议