当前位置: 首页 > 知识库问答 >
问题:

logback的自定义上下文选择器的意义是什么?

岳谦
2023-03-14

所以我有了正确的实现,它被调用得很好,但是没有方法loggerFactory#getContext(String name)..所以,如果我不能传递任何要做出决定的东西,它如何做出决定呢?

有一个contextselector#getLoggerContext(字符串名称),但我无权访问它?

我需要有多个上下文(显然加载了不同的配置),在运行时根据自己的逻辑从中进行选择。

我已经找到了一个简单地创建LoggerContexts并配置它们的解决方案,但我只是不明白这种替代机制的意义所在。

共有1个答案

郁高韵
2023-03-14

ContextSelector是一个Logback构造,不是Slf4j API的一部分。因此,在LoggerFactory上找不到任何与上下文相关的方法

但是没有方法loggerFactory#getContext(字符串名)..所以,如果我不能传递任何要做出决定的东西,它怎么能做出任何决定呢

上下文是基于一些线程本地信息来确定的。看一下ContextJNDILEctor,它根据JNDI确定正确的上下文。现在,如果在作为webapp一部分的servlet中调用LoggerFactory.getLogger,并且启用了JNDI ContextSelector,那么Logback将确定线程的JNDI conext,并从该LoggerContext确定名称。除了一些线程本地之外,我看不到LoggerFactory可以确定上下文的方法。

如果您的上下文选择逻辑可以在应用程序的入口级工作(例如,对于webapp的servlet过滤器),那么您可以有一个自定义的ContextSelector,它从ThreadLocal查看,并让您的过滤器在ThreadLocal中设置正确的上下文

 类似资料:
  • 本文向大家介绍iOS自定义日期选择器,包括了iOS自定义日期选择器的使用技巧和注意事项,需要的朋友参考一下 前言 封装了一个日期选择器,解决两个问题: 1、点击textField,键盘弹出和日期选择器弹出的逻辑处理; 2、同一个界面需要多次用到日期选择器时,判断点击的textField; 一、封装日期选择器类YCDatePickerView 1、新建一个类,基于UIView,取名YCDatePic

  • 如何覆盖,但同时保持Android提供的文本选择? 如果这是不可能的,我是否可以在其他地方调用,这样文本将被正常选择,但我的自定义菜单也将出现? 如果这两个选项都不可能...救命啊。

  • 搜索字符并不容易。我在看CSS的时候发现了这个 这是什么意思?

  • 问题内容: 我想知道HTML5随附的这些数据属性有哪些选择器。 以这段HTML为例: 是否有选择器获得: 与所有元素下方 与所有元素下方 在其他情况下,可以使用其他选择器,例如“包含,小于,大于,等等…”。 问题答案: 查看jQuery选择器:包含一个选择器 这是有关:contains选择器的信息

  • 我不知道以前有没有人问过这个问题。我要给我爸爸建一个计算器。他问我有没有办法用按钮定制。 我还没有完成任何代码。我打算尝试一些东西。我的研究结果一无所获。 这就是我想要实现的,我感觉它打破了android studio的编码法则。这就是概念: 想象一下计算器。数字上方有8个空白按钮。这些按钮通常具有百分比和sqrt等功能。,。。等 有人问我,他是否可以按住按钮,随意改变这些功能。 所以现在的问题是

  • 我试图创建一个自定义日期选择器,按照留档中的说明,经过很长一段时间,我能够做到,但我仍然收到一个错误,说“函数组件不能给出参考。访问此参考文件的尝试将失败。你的意思是使用React.forwardRef()吗?"我在我的项目中使用打字稿。