我打算将登录实现到我目前正在处理的Web应用程序中,但我正在努力解决一些细节问题.记录Java Web应用程序的最佳方法是什么?
特别;
配置文件在哪里进入.war包文件?
人们在哪里登录,相对或绝对路径平面文件,或数据库?
Log4J日志记录是自动直接进入应用程序服务器日志文件还是您必须设置的内容?在这种情况下,我使用Tomcat,但我经常使用Jrun.
对于Web应用程序日志记录,我应该注意哪些其他问题?
目前我正在使用Log4J,但我认为最佳实践将普遍应用于所有日志记录实现.
编辑:
顶部问题的一个补充.
您在哪里初始化日志配置?
在传统的应用程序中,我在入口点执行此操作;
DOMConfigurator.configureAndWatch("log4j.xml");
Web应用程序的等价物是什么?
我建议你使用SLF4J.这是一个简单的日志记录,支持大多数流行的日志记录系统(Log4j,commons-logging,Java Logging API和Logback).使用它,您可以通过简单的CLASSPATH更新将下划线日志记录系统替换为任何其他系统.
SLF4J的另一个好处是参数化调用,它可以减少丑陋的日志记录代码.
实际上,他们建议使用SLF4J和Logback. Logback是Log4J的后续版本.它是由同一作者设计的.
配置文件在哪里进入.war包文件? 类路径的根.
人们在哪里登录,相对或绝对路径平面文件,或数据库? 取决于需要.使用相对路径总是更好.如果您实现另一个应用程序,它将从中获取日志并使用电子邮件/短信发送它们,那么数据库就很好
Log4J日志记录是自动直接进入应用程序服务器日志文件还是您必须设置的内容?在这种情况下,我使用Tomcat,但我经常使用Jrun. 如果您使用Console appender,是的,它将被记录在您的servlet容器日志文件中.
对于Web应用程序日志记录,我应该注意哪些其他问题? 如果从不同的线程进行日志记录,则使用logback,它是线程安全的,并且它公开参数化的日志消息.
记录到DB会添加另一个故障点.我们遇到这样一种情况:prod服务器登录到数据库,有人在该数据库上运行了一个昂贵的查询,这使得它的速度变慢,以至于prod服务器变得非常非常慢.如果空间不足,则记录到文件可能会导致问题,但似乎不太可能减慢整个应用程序的速度.