logger.isDebugEnabled() 正在扼杀我的代码覆盖率。我打算在运行 cobertura 时排除它。
我通过在org.slf4j中添加*在cobertura.exclude中尝试.但是没有用. 我的buildfile require 'buildr/java/cobertura' require 'buildr/scala' require 'buildr/myProject' ..... ..... compile.options.other = %w(-encoding UTF-8) cobertura.exclude= 'org.slf4j.*' ..... ..... 请建议如何进行. 预先感谢 解决方案 问题是cobertura.exclude是将项目中的文件/类排除在被仪器中. 您要使用的是cobertura.ignore,例如, cobertura.ignore 'java.util.logging.*' 接受要忽略的类/方法名称的正则表达式. 来自 https://github.com/github.com/cobertur
24 2024-04-22
编程技术问答社区
为 SLF4J 日志语句添加上下文路径
我有多个Spring WebApp在单个Tomcat中部署,并在单日志文件中记录错误消息.我需要记录访问请求的WebApp的上下文路径. 目前,我必须实现一个servlet过滤器,以便为每个请求设置变量值.必须这样做,因为MDC实例是每个线程. 作为应用程序的上下文路径是恒定的,是否有任何方法可以设置MDC变量一次? log4j.appender.LOGFILE.layout.ConversionPattern=%d %X{applicationId} %-5p %c - %m%n 在MDC中设置applicationId我已经定义了一个servlet滤波​​器 public class LogFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
22 2024-04-22
编程技术问答社区
如何为 slf4j 日志创建方面点剪切
我想在所有日志中添加字符串以实现这一目标,我正在计划使用AOP,但我对所有Loggger对象均降低了点.我正在使用SLF4J Logger,这是类示例登录 Logger logger = LoggerFactory.getLogger(InterviewService.class); logger.error(ex.getMessage(),ex); 我试图在SS中拦截记录仪,因此在打印日志之前,我可以在消息中更改参数并添加我的文本 我当前更改了我的代码位,我可以捕获抛出的异常,但仍然无法拦截logger.error("一些错误日志")消息. . @Pointcut("within(org.apache.logging.log4j.*)") public void logPointcut() {} @Pointcut("within(*..Log4jLogger.*)") public void logPointcuts() {} @Pointcut("execut
28 2024-04-22
编程技术问答社区
logback : 关闭级别在 logback 中不起作用
我正在研究一个项目,在该项目中,我将SLF4J与logack进行记录.问题是日志的级别是动态的,是用户选择的.因此,用户也可以停止日志记录,以便他可以在太空上获得(我们记录许多东西,如果流量很大,它可能很快成本很高). 为此,我将一些变量保存在属性文件中,并在每次更改时重新加载它.但是我并没有成功地将其与级别的关闭(用于禁用日志)一起使用,如这是我的logback.xml:
28 2024-04-22
编程技术问答社区
SLF4J 投放和立即获取失败
我为Slf4J MDC写了一些包装器. import org.slf4j.MDC; import java.util.UUID; public final class MdcWrapperUtility { public static final String MDC_TRANSACTION_ID_KEY_NAME = "MDC_TRANSACTION_ID"; private MdcWrapperUtility() { } public static String getId() { String threadName = Thread.currentThread().getName(); String returnValue = MDC.get(MDC_TRANSACTION_ID_KEY_NAME); return returnValue; } public st
42 2024-04-22
编程技术问答社区
SLF4J:加载类 "org.slf4j.impl.StaticLoggerBinder "失败,API
该应用程序在TCServer中工作正常,除了以下错误: slf4j:无法加载类" org.slf4j.impl.staticloggerbinder". SLF4J:默认为no-operation(nop)logger实现SLF4J:请参阅 org/codes.html#staticloggerbinder 有关更多详细信息. 班级路径的含义是什么,我在哪里可以找到它? 我是新手,请解释. 解决方案 该错误意味着您缺少一个JAR文件来实现SLF4J的实际实现.您应该做的是下载一个实现,例如 logback 或 log4j (使用log4j-slf4j-impl jar,而不是log4j-to-slf4j One),然后将其添加到tcserver中的目录中. 您的类路径仅仅是包含补充的Java代码的各种库罐,以补充您的应用程序.查看右侧的相关问题,以找到缺少SLF4J JAR文件的其他类似问题.
40 2024-04-22
编程技术问答社区
速度从 1.7 升级到 2.0
我试图从使用logchute接口的速度1.7迁移.在当前的实现中,我使用日志方法来获取速度日志级别并比较我们自己的日志级别.请参阅下面的代码. @Override public void log(int level, String message) { LogLevel projLevel = null; switch ( level ) { case LogChute.DEBUG_ID: projLevel = LogLevel.DEBUG ; break ; case LogChute.INFO_ID: projLevel = LogLevel.INFO ; break ; case LogChute.WARN_ID: projLevel = LogLevel.WARNING ; break
22 2024-04-22
编程技术问答社区
当使用带有 @Grab 的 Groovy 脚本时,为什么带有 slf4j-nop 的 SLF4J 会输出 StaticLoggerBinder 警告?
我有一个令人讨厌的脚本,可以使用 spring-web ///docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/resttemplate.html" rel =" rel =" nofollow noreflow noreferrer" on #!/usr/bin/env groovy @Grab('org.springframework:spring-web:5.3.18') @Grab('org.slf4j:slf4j-nop:1.7.36') import org.springframework.web.client.RestTemplate new RestTemplate().getForObject('http://www.example.com', String) 但是,尽管如此,我仍在获得SLF4J警告: $ ./restTemplat
32 2024-04-22
编程技术问答社区
如何使用 Spring Sleuth 2.0 记录 MDC?
在春季侦探? 我认为,由于没有SpanLogger或Slf4jSpanLogger(或者我没有找到) 如果应用程序属性spring.sleuth.baggage-keys和spring.sleuth.propagation-keys如果也将set放在MDC中,我认为Slf4jCurrentTraceContext当前是当前final,我无法将其放在MDC中) 如果不是,我该如何使用Spring-Cloud 2.0实现这一目标? 解决方案 我们不想将所有条目放入MDC中(这确实没有很多意义).但是,您可以复制Slf4jCurrentTraceContext并以想要(并注册为bean)的方式将其扩展,或者可以创建自己的CurrentTraceContext实现,该实现将通过BEAN POST PROCESEOR和执行其他逻辑.我想第一个选项更可取. 其他解决方案 在版本2.1.0中,Slf4jScopeDecorator中引入了,只要在spring.sleuth.
14 2024-04-22
编程技术问答社区
如何使用 Spring Sleuth 登录 MDC?
我有一个基于Spring Boot + Gleuth的应用程序.所有人都按预期工作.我现在有这样的日志: 2017-05-04 17:55:52.226 INFO [alert,692d0eeca479e216,c3c8b680dc29ad02,false] 17292 --- [cTaskExecutor-1] c.k.a.b.s.alert.impl.AlertServiceImpl : Alert state to process: xxx 现在,我想将自定义MDC添加到我的日志中,例如合同参考.我想拥有这样的日志: 2017-05-04 17:55:52.226 INFO [alert,692d0eeca479e216,c3c8b680dc29ad02,false] [CONTRACT_REF] 17292 --- [cTaskExecutor-1] c.k.a.b.s.alert.impl.AlertServiceImpl : Alert sta
16 2024-04-22
编程技术问答社区
SLF4J-什么是悬挂或脱落的标记?
在slf4j中,我不完全确定什么一些问题: 纯粹是标记的内存管理,即停止/启动标记是垃圾收集的? 当您登录悬挂/独立的标记时会发生什么? 如果标记已分离,您仍然可以过滤还是关闭? 为什么在运行时拆下标记?我可以理解创建自由形式的动态标记,从而节省内存(子弹点1),但是稍后分离我发现奇异. 解决方案 我也有同样的问题,并试图在上面找到一些信息. 在 slf4j发行说明 1.3.1的slf4j news"> slf4j news "> slf4j news /p> 响应迈克尔·纽科姆(Michael Newcomb)提出的增强请求,现在可以将标记从生成的标记的内部列表中分离出来. 它链接到bugzilla bug#39,我再也找不到了. 线程用于对象识别的标记吗?邮件列表SLF4J-用户是关于主题的,但不包含逐字请求. 我的解释是: 内部列表中未引用独立的标记,可以收集垃圾. 作为标记可以有孩子:如果您创建一个带有孩子B和C的独立标记
32 2024-04-22
编程技术问答社区
如何使用 Logback 以 JSON 格式记录日志?
我是SLF4J和RogBack的新手,我正在尝试记录此之后的API的所有请求和响应,此后链接.这是配置 %requestURL | status code: %statusCode | bytes: %bytesSent | elapsed time: %elapsedTime | request-log: %magenta(%requestContent) | response-log: %cyan(%responseContent) 目
12 2024-04-22
编程技术问答社区
如何使用 slf4j 和 java.util.logging 在 tomcat 中登录
我创建了一个在Tomcat 8上运行的WebApp.一如既往地我想使用SLF4J,在这种情况下,由Java.util.logging支持(因为这是Tomcat的默认值).相关依赖性是这样的: org.slf4j slf4j-api 1.7.10 org.slf4j slf4j-jdk14 1.7.10 runtime 我在代码(信息和调试)中添加了一些日志语句,但找不到它们.在控制台输出(如果我从Eclip
24 2024-04-22
编程技术问答社区
获取一个虚拟的 slf4j 记录器?
我可以从SLF4J获得一个虚拟记录仪吗? (想想无效的对象设计模式.)如果是,有人可以提供一个例子吗?还是如果我想这样做,我必须实现自定义记录仪? 我希望按照 的行写一个函数 private Logger logger; static Logger nullLogger; static { nullLogger = getMeADummyLogger(); } public Logger getLogger() { return this.logger == null ? nullLogger : this.logger; } // then, elsewhere: this.getLogger().info("something just happened"); ,如果设置了没有记录器,则在最后一行中没有获得NullPointerException. 解决方案 使用 NOPLogger : return this.logger == n
36 2024-04-22
编程技术问答社区
java.lang.IllegalStateException: 在类拍上同时检测到 log4j-over-slf4j.jar 和 slf4j-log4j12.jar
谁能告诉我SLF4J-LOG4J和log4j-over-SLF4J之间的区别?在Java Web应用程序中使用哪个标准?我目前在class路径上都有,这会导致运行时异常,因为Web服务器正在尝试防止StackOverFlowException发生. 例外: java.lang.illegalstateException: 在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar 解决方案 slf4j-log4j 正在使用log4j作为SLF4J的实现. log4j-over-slf4j 导致对log4j api的呼叫,以将log4j api"路由"到slf4j. 您不能同时使用这两个罐子. 两者都是使用的有效库,同样是"标准",这取决于项目. 通常,如果您的项目已经使用了log4j,并且您无法将所有Log4J记录器更新为SLF4J记录器; log4j-over-slf4j是一个快速修复,可以立即开始使用SL
20 2024-04-22
编程技术问答社区
slf4j without toString()
当您在slf4j中执行LOG.debug("Exported {}.", product)之类的事情时,它最终会在参数上调用tostring(),例如product. 由于某些原因,我无法在我想用作参数的所有类上覆盖ToString().有些课程来自第三方罐子,其他类也将在其他情况下也将其toString()在其他情况下进行,其中我要在日志语句中打印的信息. 但是,我有一个用于调试目的的课程,该类别具有一个长长的实例级联的方法DebugFormatter.format(Object),可以选择例程以查找有关该对象的一些有用的调试信息. 我的问题是:是否可以配置slf4j,以便称呼这样的静态方法,而不是toString()? ? 当然,我可以在对象上以参数作为Logger.debug()的格式来调用我的格式方法,但是即使未启用了相应的记录器,它也将执行.因此,我不得不用if (LOG.isDebugEnabled())包围它,这意味着错过了在debug()中有争论
108 2024-04-22
编程技术问答社区
slf4j 如何绑定到实现?它真的会在编译时绑定吗?
在SLF4J的文档中,它说绑定发生在补充时间中: " slf4j不依赖任何特殊的类加载器机械.除了SLF4J-API-1.7.5.5.jar之外,在编译时绑定了使用log4j.在您的班级路径上绑定.这是一般思想的图形说明." http://www.slf4j.org/manual.html 这是如何工作的? 解决方案 这是SLF4J的源代码. SLF4J将在类路径为org/slf4j/impl/StaticLoggerBinder.class的类路径中找到所有类.如果有多个以上,JVM只会随机拿起一个.您可以在这里看到更多详细信息:// We need to use the name of the StaticLoggerBinder class, but we can't // reference // the class itself. private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/
20 2024-04-22
编程技术问答社区
在 slf4j 中传递参数的正确方法是什么?
im使用SLF4J追踪信息.我的代码是 private static final Logger log = LoggerFactory.getLogger(ObjectTest.class); log.trace("Time taken to store " + count + " objects of size " + size + " is " + (time) + " msecs"); log.trace("Time taken to store {} objects of size {} is {} msecs", new Object[] { count, size, time }); log.trace("Time taken to store {} objects of size {} is {} msecs", count, size, time); 这将是对数迹线的首选机制. 解决方案 3
16 2024-04-22
编程技术问答社区
在 JBoss/ Wildfly AS 中重复格式化的日志记录器输出
看来,我不能排除JBoss/Wildfly Logging子系统. 我有一个Java EE耳朵,想将SLF4J API与Log4J2实现一起使用. 我的目的是禁用JBOSS记录子系统,以使我的SLF4J log4j2实现处理日志记录.但是我仍然得到对Stdout的重复处理: 12:55:00,820 INFO [stdout] (Thread-316) 12:55:00 INFO 耳朵结构如下: d----- 03.07.2020 12:53 lib d----- 03.07.2020 12:53 META-INF -a---- 03.07.2020 12:53 13238 org.example-helloworld-ejb-1.0-SNAPSHOT.jar -a---- 03.07.2020 12:53
18 2024-04-22
编程技术问答社区