草庐IT

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 - javac调试信息选项-g :vars do?是什么意思

javac的-g:vars(局部变量调试信息)选项究竟提供了什么输出。做一些测试,没有附加信息(例如-g:source,lines和-g:source,lines,vars没有区别。有人有这些局部变量调试信息的例子吗? 最佳答案 -g:vars选项会将LocalVariableTable插入到您的类文件中。例如,使用这个测试类:publicclassTest{publicstaticvoidmain(String[]args){intmylocal=1;System.out.println(""+mylocal);}}可以通过jav

java - clojure/lein : How do I include a java file in my project?

我有一个带有单个类的java文件,我想将它包含在我的lein项目中。我应该把它放在哪里以及如何导入它?(我尝试将它放在包路径下的src目录中,但它告诉我ClassNotFound)所以java文件有这个包声明:packagecom.thebuzzmedia.imgscalr;并且有这个类:publicclassScalr{我把它放在~/src/com/thebuzzmedia/imgscalr/Scalr.java并试图从repl中导入它:(import'(com.thebuzzmedia.imgscalrScalr))我明白了:com.thebuzzmedia.imgscalr.Sc

java - log4j 相对文件路径

这个问题在这里已经有了答案:Log4j,configuringaWebApptousearelativepath(10个回答)关闭8年前。我希望我的网络应用程序使用以下路径登录文件:webapp/日志/我可以在log4j.properties文件中设置绝对路径,但是生产环境的目录结构会有所不同。有什么办法我可以做到吗?这是我的做法:log4j.appender.f=org.apache.log4j.RollingFileAppenderlog4j.appender.f.layout=org.apache.log4j.PatternLayoutlog4j.appender.f.layou

java - 如何纯粹以编程方式配置 log4j 2.x?

如何使用consoleappender配置log4j2.3纯编程(没有任何格式的配置文件)?基本上我正在寻找1.xcode的2.x版本.然后我会在我的类(class)中使用privatestaticfinalLoggerlogger=LogManager.getLogger();////somemethodlogger.debug(someString);没有任何配置我(如预期)面临ERRORStatusLoggerNolog4j2configurationfilefound.Usingdefaultconfiguration:loggingonlyerrorstotheconsole

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的桥接器?您可以通过删