未加载Maven过渡性依赖
问题:当我在另一个应用程序中导入自定义记录库的罐子时,我希望自定义库包含 slf4j 的依赖性应用程序中的这种依赖性. 我有一个maven项目 my-logger ,它取决于 log4j-slf4j-impl , pom.xml 的 my-logger : org.apache.logging.log4j log4j-slf4j-impl 2.12.1 在我的春季启动项目 my-app 中,我导入 my-logger : org.test my-logger 100 但是在Intell
2 2023-05-23
编程技术问答社区
slf4j日志文件保存在哪里?
我有关注的导入: import org.slf4j.Logger; import org.slf4j.LoggerFactory; 和以下实例: private static Logger logger = LoggerFactory.getLogger(Test.class); 和以下方法中的主要方法: logger.info("SOME MESSAGE: "); 但是,我无法在任何地方找到输出.我只会看到我的控制台有: 21:21:24.235 [main] INFO some_folder.Test - SOME MESSAGE: 如何找到日志文件? 请注意,以下内容在我的构建路径上: slf4j-api-1.7.5.jar slf4j-log4j12-1.6.4.jar 我阅读了类似问题的答案,但没有人实际上说如何解决问题. 解决方案 SLF4J只是API.您应该有一个具体的实现(例如log4j).该具体
12 2023-05-15
编程技术问答社区
Eclipse RCP插件中的多个slf4j绑定
我有一个简单的日食插件,这给了我以下激活上的错误: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [bundleresource://103.fwk8918249:1/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [bundleresource://103.fwk8918249:4/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 两个URL都解散到捆绑包中的完全相同的jar libs/slf4j-log4j12.jar!/org/slf4j/impl/StaticLoggerBinder.cl
0 2023-05-14
编程技术问答社区
伐木厂。getLogger(ClassName.class)与LoggerFactory。getLogger(this.getClass()。getName())
我正在尝试提高我在Java中的优化技巧.为了实现这一目标,我已经制作了一个旧的程序,并且正在尽力使它变得更好.在此程序中,我正在使用SL4J进行记录.为了获得我做的记录器: private static final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); 在我编写代码时,我认为这是最好的选择,因为我删除了对类名称的引用(可能会重构).但是现在我不太确定... private static final Logger logger = LoggerFactory.getLogger(ClassName.class); 在另一侧,请参考班级名称,但它删除了一个方法调用.对于一个课程而言,这可能不是一个很大的进步,但是当您有很多课时,这可能是一件事情. 所以我的问题是: 哪种方法更好?使用班级名称或通过反射获取它? 请激励您的答案和缺点.谢谢. 解决方案
0 2023-05-12
编程技术问答社区
记录仪slf4j用{}代替字符串连接进行格式化的优点
使用{}而不是字符串串联有任何优势? SLF4J 的示例 logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT); 而不是 logger.debug("Temperature set to"+ t + ". Old temperature was " + oldT); 我认为这是关于速度优化的,因为参数评估(和字符串串联)可以在运行时避免,具体取决于配置文件.但是只有两个参数,然后有时除了字符串串联外没有其他选择.需要对此问题的看法. 解决方案 IT IS 关于字符串串联性能.如果您有密集的记录陈述,这可能是重要的. (在SLF4J 1.7之前),但只有两个参数 由于绝大多数日志记录语句具有2个或更少的参数,因此SLF4J API达到1.6版封面(仅)大多数用例. API设计人员从API版本1.7. 对于那些需要超过2的情况,并且与1.7 pre-1.7
6 2023-05-12
编程技术问答社区
在WebSphere上用slf4j进行OpenJPA日志记录
我的Java EE 6应用程序将SLF4J与LogBack用作记录框架. 现在,我想将OpenJPA的SQL痕迹添加到我的日志文件中. OpenJPA文献显示,我可以使用一个参数: 我将WebSphere Application Server V8.0.0.1用作Java EE容器.如果我将应用程序部署到服务器,则此参数不会更改任何内容.我可以更改WebSphere Admin Console中的日志级别,这很好.但是A无法绕过我的SLF4J框架的OpenJPA记录. 有人使用这种配置并解决了问题吗? 顺便说一句.我知道,信息center-article http://publib.bould.bould.ibm.com.com./infocenter/wasinfo/wasinfo/v8r0/index.jspic = sppic = %2FAE%2FAE%2ftejb_jp
4 2023-05-11
编程技术问答社区
WAS 8.5服务器启动时出现错误NoClassDefFoundError。
我在启动时遇到以下错误是8.5.我已经在我的类路径中有slf4j-api-1.7.2.jar,slf4j-log4j-1.6.1.jar和slf4j-nop-1.7.2.jar.我想念什么? javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:398) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168) at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(Servle
8 2023-04-23
编程技术问答社区
用于记录文件的安卓最佳记录器
在Android系统中完美使用以将文本记录到文件中的最佳记录器框架是什么? 我尝试使用slf4j android,但我有一个例外 04-29 12:58:57.604: E/AndroidRuntime(372): java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory 这是我的代码: public class Main extends TabActivity { private static final Logger log = LoggerFactory.getLogger(Main.class); 我将slf4j android-1.6.1-rc1.jar添加到构建路径 问题是什么? 解决方案 slf4j-android仅支持记录到logcat,从而省略了常规SLF4J JAR中的几个类.如果要使用logBack将记录到文件,则需要 api jar (不是slf4j-andro
8 2023-04-23
编程技术问答社区
如何配置netty日志工厂,以便看到LoggingHandler的输出?
我正在使用logback的slf4j记录,在我的应用程序的开头我写了 InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory()); 然后,我将新的LoggingHandler(InternalLogLevel.DEBUG)实例添加到管道中. 不幸的是,这仍然没有记录任何内容,我正在调试,调试级别是问题所在,只需跳过日志记录. 我应该如何设置工作LoggingHandler? 解决方案 我做了一个很小的例子,确实有效 - 我将其放在 InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE);应在程序的入口点上执行.有时,这个"入口点"可能很难确定. SLF4J后端的正确配置.由于SLF4J只是一个包装器,因此根本不处理配置 - 它特定于Log4J,LogBack或Java.util.logging(或者也许是某些自
14 2023-04-21
编程技术问答社区
如何记录格式化的消息、对象数组、异常?
记录填充的消息和例外堆栈跟踪的正确方法是什么? logger.error( "\ncontext info one two three: {} {} {}\n", new Object[] {"1", "2", "3"}, new Exception("something went wrong")); 我想产生与此类似的输出: context info one two three: 1 2 3 java.lang.Exception: something went wrong stacktrace 0 stacktrace 1 stacktrace ... 我的SLF4J版本是1.6.1. 解决方案 与SLF4J 1.6.0一样不是一个简单的参数.另请参见相关FAQ输入. 所以,写(在SLF4J版本1.7.x和稍后版本中) logger.error("one two three: {} {} {}", "a", "b",
0 2023-04-20
编程技术问答社区
为什么其他代码有Log4j输出到控制台,而我的代码没有?
我有一个由Eclipse/STS和Spring MVC构建的Web应用程序. 我正在使用slf4j和log4j进行记录. 这是我的log4j.properties文件...我知道它正在使用,因为我在日期模式中添加了文本"我的测试道具文件",并且显示在日志中... # Root logger option log4j.rootLogger=DEBUG, INFO, WARN, ERROR, stdout, file # Redirect log messages to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPa
8 2023-04-19
编程技术问答社区
如何在Jetty 11.0.6中覆盖请求记录机制
我正在将Jetty 9更新为Jetty11,我看到,org.eclipse.jetty.server.asyncncsarequestlog已弃用,并为此介绍了其他两个类-ORG.ECLIPSE.JETTY.SERVER.CUSTOMERVER.CUSTOMREQUESTOMREQUESTOMREQUESTOMREQUESTLOG和org.eclipse. Jetty.Server.AsynCrequestLogWriter. 但问题是我用来扩展asyncncsarequestlog类并覆盖日志和写入方法(有关更多信息,请参见下面的代码),但找不到在Jetty11中进行操作的方法. public class JettyRequestLogger extends AsyncNCSARequestLog { private Request request; @Override public void log(Req
0 2023-04-19
编程技术问答社区
SLF4J: 类路径包含多个SLF4J绑定的警告
我在其他问题中看到了这种警告的其他问题是将SLF4J排除在引起冲突的依赖性之外,但我无法在项目中发现问题. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/Applications/Eclipse.app/Contents/Eclipse/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.16.0.20200610-1735/jars/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [file:/Applications/Eclipse.app/Contents/Eclipse/configuration/org.eclipse.osgi/5/0/.cp/org/slf4j/
94 2023-04-19
编程技术问答社区
实例化SLF4J LoggerFactory失败
so, 我正在此示例中工作 bonecp : package javasampleapps; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.jolbox.bonecp.BoneCP; import com.jolbox.bonecp.BoneCPConfig; /** A test project demonstrating the use of BoneCP in a JDBC environment. * @author wwadge */ public class BoneCPExample { /** Start test * @param args none expected. */ public static void mai
130 2023-04-08
编程技术问答社区
停止Logback系统以实现清洁关机
我一直在尝试 logback 最近,并且直接从内部eclipse运行了示例.当我这样做时,我会注意到 - 即使在我的静态main(String[] args)方法结束后(从我的Java驱动程序类中),应用程序仍在运行. 我最终确定,即使在我的主要应用程序退出之后,也正在管理自己的线程,这些线程仍在生存.我四处搜索一些解决方案,发现它是从Java内部明确关闭记录的一种方式: ILoggerFactory factory = LoggerFactory.getILoggerFactory(); if(factory instanceof LoggerContext) { LoggerContext ctx = (LoggerContext)factory; ctx.stop(); } 这确实是干净地关闭记录的唯一方法吗?我从未遇到过记录系统(Jul,Jcl,log4j等),使您明确地将其关闭以使其关闭优雅地退出您的应用程序... 预先感谢! 更新:
0 2023-04-06
编程技术问答社区
使用Tomcat7、Apache Wink和Mongo DB进行WAR部署时的日志错误
我在将应用程序部署到Tomcat服务器上遇到问题.每次部署时,我都会得到以下跟踪: 27-Oct-2013 17:02:34 org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive /var/lib/tomcat7/webapps/JsonTest.war Handler error java.io.IOException: Couldn't get lock for %h/java%u.log at java.util.logging.FileHandler.openFiles(FileHandler.java:389) at java.util.logging.FileHandler.(FileHandler.java:225) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(N
2 2023-03-31
编程技术问答社区
Scala "构造函数Stopwatch不能在类Main中访问"
摘要解决方案,我认为我正在处理Scala问题,但事实证明,秒表和Scala Logging具有私人构造函数,我没有呼吁适当的公共方法来实例化它们. GZM0的答案下面指出了这一点. 尝试使用guava秒表和scala记录,无论我是在main还是在实例化类中创建new Stopwatch()或new Logger()>:gradle run: constructor Logger in class Logger cannot be accessed in class RedBlackTree4150 var loggerInst = new Logger() constructor Stopwatch in class Stopwatch cannot be accessed in class RedBlackTree4150 var stopWatchInst = new Stopwatch() 如果这是 this 或这个问题我不知道足够意识到这一点.我看这个问题有一个公
8 2023-03-30
编程技术问答社区
使用PowerMock和Mockito模拟Logger和LoggerFactory
我有以下我想嘲笑的记录仪,但是要验证日志条目,而不是用于内容. private static Logger logger = LoggerFactory.getLogger(GoodbyeController.class); 我想模拟任何用于loggerfactory.getlogger()的类,但我找不到如何做到这一点. 这就是我到目前为止最终得到的: @Before public void performBeforeEachTest() { PowerMockito.mockStatic(LoggerFactory.class); when(LoggerFactory.getLogger(GoodbyeController.class)). thenReturn(loggerMock); when(loggerMock.isDebugEnabled()).thenReturn(true); doNot
118 2023-03-29
编程技术问答社区
什么是对SLF4J日志信息进行单元测试的最佳方式?
我正在使用SLF4J,我想单元测试我的代码,以确保在某些条件下生成警告/错误日志消息.我宁愿这些是严格的单元测试,因此我不必从文件中拔出日志记录配置,以便测试生成日志消息.我正在使用的模拟框架是Mockito. 解决方案 我认为您可以通过自定义应用程序来解决您的问题.创建一个实现org.apache.log4j.Appender的测试appender,并在执行测试用例时将其设置在log4j.properties中并加载. 如果您可以从该appender中拨打测试线束,则可以检查已记录的消息 其他解决方案 创建一个测试规则: import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; import org.junit.rules
4 2023-03-29
编程技术问答社区