草庐IT

java - log4j 与 System.out.println - 记录器的优势?

我第一次在项目中使用log4j。一位程序员同事告诉我,使用System.out.println被认为是一种不好的风格,而log4j就像现在记录事务的标准一样。我们进行了大量的JUnit测试-System.out的东西最终变得更难测试。因此我开始将log4j用于控制台Controller类,它只是处理命令行参数。//log4jloggerconfigorg.apache.log4j.BasicConfigurator.configure();Loggerlogger=LoggerFactory.getLogger(Console.class);Categorycat=Category.g

java - 在 Dom4j 中使用 Xpath

尝试访问dom4j上已解析xml文档的任何节点时出现以下异常:Exceptioninthread"main"java.lang.NoClassDefFoundError:org/jaxen/JaxenExceptionatorg.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)atorg.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)atorg.dom4j.tree.AbstractNode.selectNodes(AbstractNode.jav

java - Log4J:如何将 OutputStream 或 Writer 重定向到 logger 的 writer(s)?

我有一个在启动后异步运行的方法,使用OutputStream或Writer作为参数。它充当OutputStream或Writer的记录适配器(这是我无法更改的第三方API)。如何将Log4J的内部OutputStream或Writer传递给该方法?...因为Log4J吞了System.out和System.err,我以前用过。 最佳答案 我的建议是,那你为什么不写你的OutputStream呢?!本来想写一个给你的,但是我在网上找到了这个很好的例子,看看吧!LogOutputStream.java/**JacaretoCopyrig

java - 对 SLF4J API 的 Lambda 支持

在Log4j最新的API中,我们支持Lambda,我可以轻松管理调试选项。例子:logger.debug("This{}and{}with{}",()->this,()->that,()->compute());但是对于slf4j/logback,是否有任何选项可以启用lambda,如上所述。那么请告诉我语法。 最佳答案 很遗憾,目前尚不支持此功能:https://jira.qos.ch/browse/SLF4J-371 关于java-对SLF4JAPI的Lambda支持,我们在Stac

java - Log4j2 中 AsyncLogger 和 AsyncAppender 的区别

我了解AsyncAppender在单独的线程中执行附加工作。他们为此使用ArrayBlockingQueue。与AsyncLogger使用LMAX中断库将日志事件从一个应用程序线程移动到另一个线程,与AsyncAppender相比它更快。我的问题是,如果AsyncLogger更有效地完成了它所做的工作,为什么我们在log4j2中有AsyncAppender。如果我们将AsyncAppender与AsyncLogger一起使用会怎样?AsyncLogger和AsyncAppender还有什么区别吗? 最佳答案 没错,它们的目的几乎相同

java - slf4j & log4j2 maven 设置查询

我在我的项目中使用log4j2和slf4j并使用maven进行构建。我正在使用以下pom文件(仅显示相关依赖项),但我在下面使用此pom文件复制了错误-知道我需要添加/删除什么才能使其正常工作。我已经访问了错误中的url以及log4j2依赖项页面,所以请不要只在您的回复中指向URL。消息:SLF4J:Failedtoloadclass"org.slf4j.impl.StaticLoggerBinder".SLF4J:Defaultingtono-operation(NOP)loggerimplementationSLF4J:Seehttp://www.slf4j.org/codes.h

java - log4j:使用了哪个配置文件?

使用log4j,如何找出当前DOMConfigurator文件log4j.xml的名称和路径是什么,使用PropertyConfigurator.configureAndWatch方法重置文件名,需要这个文件的名称和路径看看它是否已经改变。API文档向我展示了如何配置log4j以重新加载配置,但我找不到查看自动获取的文件名和路径的方法。该应用程序在任何应用程序服务器上独立运行。谢谢。 最佳答案 恐怕您没有机会从API中获取自动拾取的路径。据我了解log4j的源代码,检测到的路径只会被使用而不被存储。至少你可以使用-Dlog4j.de

java - 如何将 log4j 与多个类一起使用?

我目前正在用java编写一个大项目,有很多类,有些类很小,只用很少的方法表示对象。我在我的主课上设置了一个记录器,它工作正常。我希望能够对所有类仅使用一个记录器(带有一个控制台附加程序)。我试图将记录器的引用传递给不同的类,但它看起来不正确。此外,有时我在没有运行main的情况下对类运行测试,因此没有为其他类初始化记录器。实现这一点的最佳方法是什么,我的意思是,如何从不同的类记录到一个日志,类之间没有硬依赖,并且能够独立使用每个类的日志? 最佳答案 如果我理解正确,您现在所拥有的是:publicclassMain{publicsta

java - 基于String创建的slf4j和log4j的区别

如果我们写在log4j中**logger.debug("Processingtradewithid:"+id+"symbol:"+symbol);**它会在字符串池中创建字符串,但是当我们使用slf4j时,我们使用这样的参数**logger.debug("Processingtradewithid:{}andsymbol:{}",id,symbol);**那么这两个语句有什么区别,slf4j会在运行时创建String还是不创建呢? 最佳答案 不同之处在于性能的提高,在log4j中,即使日志级别低于调试,每次评估行时都会连接字符串,因

java - 有没有好的 J2ME IDE?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭11年前.有没有好的J2MEIDE?我的意思是轻巧便携的东西。可以运行您在其上编程的东西。我最喜欢的JavaIDE是JCreatorLite。J2ME有类似的东西吗?另外,您认为哪个是最好的J2MEIDE? 最佳答案 Netbeans相当不错,虽然不是很轻巧。Thistutorial提供了一个很好的说明。