Java 中的日志记录是怎么回事?[已关闭]
为什么一个会使用以下软件包之一而不是另一个?
- Java Logging
- 共享资源日志记录
- Log4j
- 断续器
- 日志备份
为什么一个会使用以下软件包之一而不是另一个?
按 api 外观的时间顺序(据我所知):
logger.debug("The entry is {}.", entry);
//which expands effectively to
if (logger.isDebugEnabled()){
// Note that it's actually *more* efficient than this - see Huxi's comment below...
logger.debug("The entry is " + entry + ".");
}
我发现Java中的日志记录令人困惑,不一致,文档记录不佳,而且特别随意。此外,这些日志记录框架之间存在大量的相似性,从而导致重复工作,并且对您实际处于哪种日志记录环境感到困惑。特别是,如果您在严肃的Java Web应用程序堆栈中工作,则通常一次在多个日志记录环境中工作。(例如,休眠可以使用log4j和tomcat java.util.logging)。Apache commons旨在桥接不同的日志记录框架,但实际上只会增加更多复杂性。如果你事先不知道这一点,那真是太令人困惑了。为什么我的日志消息没有打印到控制台等?哦,因为我正在查看Tomcat日志,而不是log4j。另一层复杂性是,应用程序服务器可能具有可能无法识别特定 Web 应用程序的本地配置的全局日志记录配置。最后,所有这些日志记录框架都太复杂了。在Java中登录是一个杂乱无章的混乱,让像我这样的开发人员感到沮丧和困惑。
Java的早期版本没有内置的日志记录框架,导致这种情况。