草庐IT

java - 默认 log4j MDC 值

有谁知道如何使用log4j的配置xml为MDC中缺失的条目指定默认值?我在我的XML文件中定义了一个附加程序,如下所示:有问题的部分是来自MDC的订单ID(%X{orderID})。我四处搜索,只发现同一个线程的副本说了一些类似$${orderID:-DefaultValue}的内容,但这在这种情况下不起作用。当在没有订单ID的上下文中收到日志消息时,我需要能够将该值默认为0或-1或其他一些重要值 最佳答案 如果您在java代码中访问MDC对象,则可以通过在某些启动区域(例如,servletinit()方法)添加以下内容来初始化or

java - Logback MDC put() 可变对象

我正在使用Vaadin框架,它对拦截事件的支持很差,我无法知道session或UI何时被激活,所以我无法将它们的ID放入MDC。通常我会:publicvoidonSessionBegin(){MDC.put("session",VaadinSession.getCurrent().toString());//但是我没有这样的事件,所以我想://intheservletinitorwhereverMDC.put("session",newObject(){publicStringtoString(){VaadinSession.getCurrent().toString()};});//

java - 在log4j中使用MDC动态命名日志文件

是否有可能一些如何使用MDC在运行时命名日志文件。我有一个Web应用程序,它使用tomcat文档库同时被不同的名称调用。所以我需要为他们每个人准备单独的日志文件。 最佳答案 这可以在Logback中完成,Log4J的继任者。Logbackisintendedasasuccessortothepopularlog4jproject,pickingupwherelog4jleavesoff.请参阅SiftingAppender的文档TheSiftingAppenderisuniqueinitscapacitytoreferenceand

java - 如何将 MDC 与 ForkJoinPool 一起使用?

跟进HowtouseMDCwiththreadpools?如何将MDC与ForkJoinPool一起使用?具体来说,我如何包装一个ForkJoinTask,以便在执行任务之前设置MDC值? 最佳答案 以下似乎对我有用:importjava.lang.Thread.UncaughtExceptionHandler;importjava.util.Map;importjava.util.concurrent.ForkJoinPool;importjava.util.concurrent.ForkJoinTask;importjava.u

安装 openssl 时报错:openssl: symbol lookup error: openssl: undefined symbol: EVP_mdc2, version OPENSSL_1_

在使用源码安装完openssl后,执行opensslversion命令查看版本信息时,报如下错误:root@BZD25521:/etc/ld.so.conf.d#opensslversionopenssl:symbollookuperror:openssl:undefinedsymbol:EVP_mdc2,versionOPENSSL_1_1_0报错原因缺少动态库解决办法方案一:在指定安装路径时使用-fPIC参数链接动态库#将/usr/local/openssl替换为你自己的openssl安装路径./config--prefix=/usr/local/openssl-fPIC方案二:1)手动链

java - 将org.slf4j.MDC与Netty channel 一起使用?

实际上,我想做的是HowtouseMDCwiththreadpools?所要问的,但要与Netty一起。我想要每个Channel关联的MDC信息。Netty有哪些选择?如果我需要手动重置MDC,可以使用哪种方法从一个地方进行重置? 最佳答案 看看GitHub上的mdedetrich/mdc-async-netty-eventloopgroup项目。基本上,您必须装饰EventLoopGroup.execute@Overridepublicvoidexecute(Runnablerunnable){delegate.execute(n

android - 使用 MDC 在 android 中创建 Material 微调器下拉列表

我正在研究Material组件的Material设计Material.io,一切都很好,我正在尝试使用MDC的TextField组件创建一个Material下拉微调器,但我似乎找不到任何相关文档,是否可以使用MDC创建一个微调器?如果是这样,我在哪里可以找到它的文档?在TextField的目录中看到一个微调器,我可以做这样的事情吗?: 最佳答案 这正是你需要的https://material.io/develop/android/components/menu/#exposed-dropdown-menus首先在Textinputl

openssl: symbol lookup error: openssl: undefined symbol: EVP_mdc2

在服务器上安装低版本openssl跑实验时出现了该问题,原因是动态链接库不对。进入openssl的安装目录,使用lddopenssl可以看到链接到了其他版本openssl安装的libssl.o.1.1上了linux-vdso.so.1(0x00007ffe74722000)libssl.so.1.1=>/lib/x86_64-linux-gnu/libssl.so.1.1(0x00007f819b068000)libcrypto.so.1.1=>/lib/x86_64-linux-gnu/libcrypto.so.1.1(0x00007f819ad91000)libpthread.so.0=>

访问log4j2.xml的文件元素内部的MDC键值

我正在尝试做类似以下操作log4j.xml:%d%p%c{1.}[%t]%m%n我已经设置了Java代码中的密钥:MDC.put("client","Roger");我努力了${client}以及内部log4j2.xml没有什么可用。我如何引用内部的MDC键log4j2.xml在布局元素之外?我还指定了“属性”部分下的密钥的默认值:如下:default看答案而不是%X模式转换器(仅用于布局),您要使用抬头.在这种情况下,有一个内置查找可以执行您想要的:上下文图查找.示例用法:

java - 使 logback 模式部分可选?

是否可以根据属性制作部分logbacks模式布局?例如仅在%X{bdid}存在的情况下显示bdid(...)?这个附加程序bdid\(%X{bdid}\)-%d{HH:mm:ss.SSS}%msg%n打印bdid(0b5d3877-f3dd-4189-8b1b-489c8b617f2a)18:22:25.206如果bdid存在,但打印bdid()18:22:20.928如果没有。如何在我的日志中省略空的bdid()? 最佳答案 您可以使用replace功能,详细信息在文档中here.一个工作示例如下:logback.xml%repl