记录 Java Web 应用程序?

2022-09-02 03:41:09

我计划实现登录到我目前正在处理的Web应用程序,但我正在努力解决一些细节。记录 Java Web 应用程序的最佳方式是什么?

具体而言;

  • .war 包文件中的配置文件在哪里?
  • 人们在哪里记录到相对路径或绝对路径平面文件或数据库?
  • Log4J 日志记录是直接自动进入应用程序服务器日志文件,还是必须进行设置?在这种情况下,我使用的是Tomcat,但我经常使用Jrun。
  • 对于 Web 应用程序日志记录,我应该注意的任何其他问题?

目前我正在使用Log4J,但我想最佳实践将普遍适用于所有日志记录实现。

编辑:
对顶部的问题进行补充。

  • 您在哪里初始化日志配置?

在传统的应用程序中,我在入口点执行此操作;

DOMConfigurator.configureAndWatch("log4j.xml");

Web 应用程序的等效项是什么?


答案 1

我建议您使用SLF4J。这是简单的日志记录外观,支持大多数流行的日志记录系统(Log4jcommons-loggingJava Logging APILogback)。使用它,您将能够通过简单的CLASSPATH更新将下划线日志记录系统替换为任何其他系统

SLF4J的另一个好处是参数化调用,这减少了丑陋的日志记录代码。

实际上,他们建议将SLF4JLogback一起使用LogbackLog4J的继承者。它是由同一位作者设计的。


答案 2

.war 包文件中的配置文件在哪里?类路径的根。

人们在哪里记录到相对路径或绝对路径平面文件或数据库?取决于需求。使用相对路径总是更好。如果您实现另一个应用程序,则数据库是很好的,该应用程序将从中获取日志并通过电子邮件/短信发送它们

Log4J 日志记录是直接自动进入应用程序服务器日志文件,还是必须进行设置?在这种情况下,我使用的是Tomcat,但我经常使用Jrun。如果您使用控制台追加器,是的,它将记录在您的 servlet 容器日志文件中。

对于 Web 应用程序日志记录,我应该注意的任何其他问题?如果您使用 logback 从不同的线程进行日志记录,则它是线程安全的,并且会公开参数化的日志消息。


推荐