草庐IT

java - 使用单个 log4j2 xml 文件配置 log4j2 和 log4j

我已将我的应用程序迁移到log4j2,并通过log4j2.xml对其进行配置但是,我使用的一些库依赖于log4j1。如果我使用以下方式运行应用程序:-Dlog4j.configurationFile=path/to/log4j2.xmllog4j1提示找不到配置文件。我使用的是log4j2提供的log4j1.x桥,log4j-1.2-api-2.0-rc1.jar。是否可以使用单个log4j2.xml来配置两者?我尝试过的另一种方法是同时配置log4j和log4j2:-Dlog4j.configurationFile=path/to/log4j2.xml-Dlog4j.configur

java - 混合 log4j 1.x 和 log4j 2

我有一个使用log4j2编写的新应用程序,以利用它的一些新功能。它使用的一个库有点老,是用log4j1.x构建的。我有一个问题,应用程序中的新代码写入日志,但旧库中的代码没有写入日志。我什至有一个类,它是旧库中某些东西的子类,也被旧库中的代码调用,并且该代码也不会写入日志。我已将应用程序配置为使用log4j2版本2.0.2,并且在将旧库作为maven依赖项引用时明确排除了log4j。如何让旧库中的代码登录到与新代码相同的文件中?重写旧库应该被视为最后的选择 最佳答案 您是否知道log4j2包含log4j-1.2的桥接器?您可以通过删

java - 请正确初始化log4j系统。在运行 Web 服务时

也许问这个看起来很傻,但我很困惑。我提到了ConfiguringLog4jproperty但这似乎没有帮助。我编写了一个简单的Web服务HelloWorld。在运行它时,我收到类似这样的错误:log4j:WARNNoappenderscouldbefoundforlogger(org.apache.axis.transport.http.AxisServlet).log4j:WARNPleaseinitializethelog4jsystemproperly.我不知道为什么会这样。我正在使用Eclipse生成Web服务并部署在Tomcat6.0中。我查看AxisDeveloper'sG

java - 获取异常 org.apache.logging.slf4j.SLF4JLoggerContext 无法转换为 org.apache.logging.log4j.core.LoggerContext

我的代码使用apache-log4j-2.0.2非常简单:importorg.apache.log4j.BasicConfigurator;importorg.apache.log4j.Logger;publicclassLog4jtest{staticLoggerlog=Logger.getLogger(Log4jtest.class);publicstaticvoidmain(String[]args){BasicConfigurator.configure();log.debug("Thisisdebugmessage");}}但是我遇到了这样的异常:Exceptioninthr

java - 如何让 Jersey 使用 SLF4J 而不是 JUL?

我找到了ausefularticle这解释了如何让Jersey使用SLF4J而不是JUL。现在我的单元测试看起来像(并且效果很好):publicclassFooTestextendsJerseyTest{@BeforeClasspublicstaticvoidinitLogger(){java.util.logging.LoggerrootLogger=java.util.logging.LogManager.getLogManager().getLogger("");java.util.logging.Handler[]handlers=rootLogger.getHandlers(

java - 带有 slf4j 和 log4j 的 hibernate 3.4

我正在尝试从Hibernate3.2升级到3.4,它显然使用了slf4j。我们的项目目前使用log4j。所以我的假设是我应该使用slf4j-log4j12包装的实现。Mavenslf4j依赖是:org.slf4jslf4j-log4j121.5.6虽然log4j依赖是:log4jlog4j1.2.15slf4j-log4j12和log4j都引用了最新版本(我可以在Maven存储库中找到)。当我运行我的应用程序时,Hibernate的日志记录失败:java.lang.NoSuchFieldError:nameatorg.slf4j.impl.Log4jLoggerAdapter.(Log

java - 使用 SL4J 进行日志记录、Jakarta Commons 日志记录、第三方库的 log4j 和我自己的代码

我有一些关于日志记录的问题,更具体地说是关于设置它并确保它工作的问题。我正在做的项目将使用Wicket,Spring和Hibernate.我知道Wicket和Hibernate使用Java的SimpleLoggingFacade(SL4J)并且Spring使用的是loggingcomponentfromApacheCommons.他们会幸福地共存吗?我以为我会使用log4j再加上SL4J和Apachecommons的日志组件,你认为这是个好主意吗?我可以将它们全部设置为将日志数据输出到一个通用文件中吗?或者我应该使用单独的文件?还是应该将日志消息存储在数据库中?(我宁愿不这样做,因为我

java - 将 System.out 和 System.err 重定向到 slf4j

我需要将System.out/err.println输出重定向到slf4j。我知道这不是正确记录日志的方法,但有一个外部库,可以记录到System.out。 最佳答案 您可以使用sysout-over-slf4j.Thesysout-over-slf4jmoduleallowsausertoredirectallcallstoSystem.outandSystem.errtoanSLF4JdefinedloggerwiththenameofthefullyqualifiedclassinwhichtheSystem.out.prin

java - 设置 log4j 日志级别

我目前正在做一个使用log4j的项目。我正在运行一个测试用例(junit)并想将日志级别设置为跟踪,以便我可以查看所有值是否正确。项目中使用日志的类包含如下一行:privatestaticfinalLogLOG=LogFactory.getLog(MatchTaskTest.class);并使用类似这样的方式进行实际调试LOG.trace("value");我以前从未使用过log4j,有人知道我如何仅为测试用例更改日志级别,最好只需在eclipse的运行配置对话框中定义一个参数。 最佳答案 使用另一个配置文件也许你可以指向另一个配置

java - 如何使用 to log4j 写入文本文件?

我想知道如何将以下代码转换为将这些行输出到文本文件,而不是标准输出:importorg.apache.log4j.Logger;importorg.apache.log4j.PropertyConfigurator;publicclassHelloWorld{staticfinalLoggerlogger=Logger.getLogger(HelloWorld.class);publicstaticvoidmain(String[]args){PropertyConfigurator.configure("log4j.properties");logger.debug("Sampled