首页主机资讯JSP应用在Ubuntu上的日志管理

JSP应用在Ubuntu上的日志管理

时间2025-11-28 21:07:05发布访客分类主机资讯浏览459
导读:JSP应用在Ubuntu上的日志管理 一 日志来源与存放位置 容器与应用日志:JSP运行在Apache Tomcat之上,首要关注Tomcat日志,常见路径为**/var/log/tomcat9/**,核心文件包括:catalina.ou...

JSP应用在Ubuntu上的日志管理

一 日志来源与存放位置

  • 容器与应用日志:JSP运行在Apache Tomcat之上,首要关注Tomcat日志,常见路径为**/var/log/tomcat9/**,核心文件包括:catalina.out(标准输出/错误)、localhost..log(主机日志)、localhost_access_log..txt(访问日志)。这些文件覆盖启动、部署、运行期异常与访问轨迹,是排查问题的第一现场。对于使用包管理器安装的Tomcat,日志默认即写入该目录。
  • 应用内日志:业务日志建议使用日志框架输出到应用目录(如**/var/log/yourapp/**),便于与应用实例生命周期解耦,并与系统日志策略统一管理。

二 在JSP中输出日志

  • 使用java.util.logging(JUL)
    • 代码示例:
      <
          %@ 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());
      
        }
          
      %>
          
      
    • 说明:JUL为JDK内置,零依赖,适合轻量场景;可通过配置实现按大小/时间滚动。
  • 使用Log4j 1.x
    • 依赖(Maven):
      <
          dependency>
          
        <
          groupId>
          log4j<
          /groupId>
          
        <
          artifactId>
          log4j<
          /artifactId>
          
        <
          version>
          1.2.17<
          /version>
          
      <
          /dependency>
      
      
    • 配置示例(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
      
    • 在JSP中:
      <
          %@ page import="org.apache.log4j.Logger" %>
          
      <
          %
        Logger log = Logger.getLogger("MyJspPage");
          
        log.info("Log4j info from JSP");
          
      %>
          
      
    • 说明:RollingFileAppender可自动按大小滚动并保留历史。
  • 使用Log4j2
    • 依赖(Maven,示例版本2.17.1):
      <
          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>
          
      
    • 配置示例(src/main/resources/log4j2.xml):
      <
          ?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>
          
      
    • 在JSP中:
      <
          %@ page import="org.apache.logging.log4j.LogManager, org.apache.logging.log4j.Logger" %>
          
      <
          %
        Logger log = LogManager.getLogger(request.getServletPath());
          
        log.info("Log4j2 info from JSP");
          
      %>
      
      
    • 说明:Log4j2性能与功能更完善,支持按时间与大小滚动、异步日志等。

三 系统级日志轮转与权限

  • 使用logrotate集中管理应用日志(推荐)
    • 新建配置:/etc/logrotate.d/yourapp
      /var/log/yourapp/*.log {
      
        daily
        rotate 7
        compress
        missingok
        notifempty
        create 640 tomcat adm
        copytruncate
      }
          
      
    • 要点:
      • 选择copytruncate以避免应用持有文件句柄导致轮转失败(适合无法发送信号的应用)。
      • 若应用支持SIGHUP重开日志,可改用postrotate发送信号(如 kill -USR1)并去掉copytruncate。
      • 权限建议:Tomcat运行用户常为tomcat,组为adm,与上面create保持一致。
  • 容器日志轮转
    • Tomcat自身也会写入catalina.out等大文件,建议同样用logrotate管理(路径为**/var/log/tomcat9/catalina.out**),策略可按日轮转并压缩保留7–30天。

四 集中式日志与日常运维

  • 集中式日志
    • 将应用日志发送到ELK Stack(Elasticsearch、Logstash、Kibana)Graylog,统一采集、检索、可视化与告警;适合多实例、多环境。
  • 日常运维命令
    • 实时查看容器日志:
      sudo tail -f /var/log/tomcat9/catalina.out
      
    • 查看系统日志(若应用接入syslog/journald):
      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
      
    • 安全建议:避免在日志中打印密码、密钥、个人敏感信息;为日志目录设置最小权限(如640,属主tomcat:adm)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: JSP应用在Ubuntu上的日志管理
本文地址: https://pptw.com/jishu/759432.html
Ubuntu系统更新对JSP的影响 Ubuntu环境下JSP数据库连接问题

游客 回复需填写必要信息