【问题标题】:DEBUG log rotation in JAVAJAVA 中的 DEBUG 日志轮换
【发布时间】:2015-02-10 09:36:31
【问题描述】:

在生产环境中(例如),我们经常使用 INFO 日志级别,因为 DEBUG 日志的大小很快就会变得很大。

我知道 SLJ4J 或 LOG4J 可以配置日志轮换以拆分文件等。 但大多数时候,我们只需要出现异常时的 DEBUG 日志,这样我们就可以获得更多信息(例如 HTTP 请求日志)。

我想知道是否可以只保留(例如)1 分钟的 DEBUG 日志并在出现异常时保存它。 (主日志文件始终位于 INFO 级别) 例如,当发生 HttpRequestException 时,我们在特定文件夹中保存了一个带有 1 分钟 DEBUG 日志 HttpRequestException-10-02-2015-10:28:50.log 的文件

所以我们可以很容易地看到这个文件夹中的所有异常

/Exceptions/
   - HttpRequestException-10-02-2015-10:28:50.log
   - NullPointerException-10-02-2015-10:29:51.log
   - IOException-10-02-2015-11:29:51.log

那么...是否可以使用像 slf4j 这样的工具来做到这一点? DEBUG 在生产服务器上记录一个巨大的性能问题吗?

谢谢

【问题讨论】:

    标签: java debugging logging rotation slf4j


    【解决方案1】:

    我找到了解决方案。 我使用 cyclicBufferTracker 告诉 appender 在触发后使用最后 x 行 我可以使用 evaluator 属性来配置触发器(默认触发器是发生错误时)

    电子邮件对我来说没问题,但如果有人想把它放在文件中而不是电子邮件中,我认为你可以创建一个自定义 Appender 而不是 SMTPAppender

    喜欢这个页面:http://jira.qos.ch/browse/LOGBACK-207

    这是实际代码:(如果您使用电子邮件实现,则需要 javax.activation 和 javax.mail)如果您像我一样使用 gmail,则需要在 gmail 设置中允许低安全性应用程序:Gmail less secure apps

    <appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
       <smtpHost>smtp.gmail.com</smtpHost>
       <smtpPort>587</smtpPort>
       <asynchronousSending>false</asynchronousSending>
       <STARTTLS>true</STARTTLS>
       <username>GoogleUsername</username>
       <password>mypassword</password>
       <to>GoogleUsername@gmail.com</to>
       <from>GoogleUsername@gmail.com</from>
       <subject>Exception Alert</subject>
       <layout class="ch.qos.logback.classic.PatternLayout">
          <pattern>%date - %message%n</pattern>
       </layout>
       <cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
          <bufferSize>50</bufferSize>
       </cyclicBufferTracker>
    </appender>
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-29
      • 2013-08-06
      • 2020-07-15
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      相关资源
      最近更新 更多