JSP应用在Ubuntu上的日志管理
一 日志来源与存放位置
二 在JSP中输出日志
<%@ page import="java.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());
}
%>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
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");
%>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</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>
<RollingFile name="RollingFile" fileName="/var/log/yourapp/app.log"
filePattern="/var/log/yourapp/app-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
<%@ page import="org.apache.logging.log4j.LogManager, org.apache.logging.log4j.Logger" %>
<%
Logger log = LogManager.getLogger(request.getServletPath());
log.info("Log4j2 info from JSP");
%>
三 系统级日志轮转与权限
/var/log/yourapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 tomcat adm
copytruncate
}
四 集中式日志与日常运维
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