它们是替代品、依赖项、API还是彼此的实现?它们为什么存在? 最佳答案 啊,Java中的日志记录框架。您的问题混合了2种不同类型的库:log4j和JDK日志记录是处理日志记录的库CommonsLogging和SLF4J是日志外观:您仍然需要一个真正的日志实现(比如log4j)如果您正在编写一个将在其他人的系统中使用的库,那么您应该使用日志外观,因为您不知道他们将使用哪个日志框架。在这种情况下使用SLF4J(CommonsLogging较旧并且有一些类加载器问题)。如果您控制整个应用程序并且可以决定使用哪个日志记录框架,您可以自由选择
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion全部,我正在探索是否有一种工具可以帮助我做到这一点:按时间倒序查看日志文件,即我想在屏幕顶部查看写入日志文件的最新日志语句,而不是每次更新日志文件时都向下滚动。查看时可能会暂停,这样当我阅读或分析我的日志文件时,它不会刷新屏幕。这可能吗?我正在使用log4j登录我的j2ee应用程序。谢谢。
我已将SpringMVC设置为使用公共(public)日志记录来记录异常,但发现未记录某些运行时异常。这是我为spring提供的默认异常解析器配置的bean:error 最佳答案 为了让它记录大多数异常,我必须将以下行添加到我的配置中:所以最终变成了下面这样:errorwarnLogCategory是describedindetailhere. 关于java-SpringMVC不记录所有异常,我们在StackOverflow上找到一个类似的问题: https:
我正在尝试在GAE中进行一些简单的日志记录,但我认为我一定遗漏了一些简单的步骤。我已按照此处的说明进行操作:https://developers.google.com/appengine/docs/java/runtime#Logging我希望向日志中写入一条简单的消息,如下所示:publicclassInsertServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;privatestaticfinalLoggerlog=Logger.getLogger(InsertServlet.class.getNa
将日志写入tomcat/catalina.out的最简单方法是什么?我已经尝试过System.out.print()并且System.err.print()工作正常。我只是想知道除了sysout和syserr之外是否还有更好的选择? 最佳答案 importjava.util.logging.*Logger.getLogger(YourClass.class.getName()).log(Level.WARNING,e.getMessage(),e);Logger.getLogger(YourClass.class.getName()
我需要一个围绕Log4j2的自定义包装器。基本要求是这样的。我的应用程序应该只在任何地方使用MyCustomLogger。而不是Log4j2记录器,所以如果将来需要,我可以轻松删除第三方库,如log4j2等依赖项。我该怎么做?? 最佳答案 Log4j2附带了一个用于生成自定义记录器包装器的工具:参见http://logging.apache.org/log4j/2.0/manual/customloglevels.html#CustomLoggers此工具旨在用于自定义日志级别,但您也可以将其用于您的目的。如果您想完全删除对log4
我有一个log4j2.xml文件,如下所示。它正在运行,但它正在获取大量Hibernate和GWT日志文件。我怎样才能排除这些包,或者我怎样才能让我的日志文件只包含来self的包层次结构的日志记录? 最佳答案 删除您的“调试”根记录器。然后添加以下记录器,它将仅记录来自给定“some.dummy.package”的日志所以最后你会有 关于java-过滤掉Log4j2文件中的Hibernate日志,我们在StackOverflow上找到一个类似的问题: http
我正在学习Java,我发现有许多标准化的功能:日志记录(使用SLF4J)持久性(使用JPA)REST(使用JAX-RS)SOAP(使用JAX-WS)等等让我们以Sl4j为例:要将其与log4j一起正确使用,我们必须导入sl4japi、sl4j/log4j桥和log4j实现。问题:在我的类里面,我只与Slf4jAPI进行通信。我的应用程序如何知道log4j实现?有人可以解释幕后发生的事情吗?问候 最佳答案 OP提出了一个关于在某些不同情况下如何注入(inject)实现的一般性问题。记录如许多答案所述,SLF4J提供接口(interfa
我有一个在Tomcat服务器上运行的记录器应用程序。我在springboot框架上使用logback。下面是我的logback.xml文件/var/log/audit/audit.log/var/log/audit/audit_%d{yyyy-MM-dd}.%i.log100MB30true%msg%nINFO%msg%n我的应用程序正确记录到/var/log/audit/audit.log。但在某些时候我需要删除日志文件。删除后,我注意到调用记录器应用程序时没有创建新的audit.log文件。只有当我重新启动记录器应用程序时,才会生成新的日志文件。有什么方法可以绕过应用重启,以便lo
我的build.gradle文件中有以下依赖项。compile'org.slf4j:slf4j-api:1.7.25'compilegroup:'org.apache.logging.log4j',name:'log4j-core',version:'2.11.1'compilegroup:'org.apache.logging.log4j',name:'log4j-api',version:'2.11.1'在运行我的单元测试时,会显示以下日志。excludepatterns:SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foun