是否有可能在Logback中确定将日志消息发送到附加器的实际日志记录程序?示例:
<configuration>
<!-- ... -->
<logger name="com.example">
<appender-ref ref="myAppender"/>
</logger>
<logger name="com.example.sub">
<appender-ref ref="myAppender"/>
</logger>
</configuration>
Logger com.example (com.example.sub.MyClass) Test
Logger com.example.sub (com.example.sub.MyClass) Test
ContextSelectorStaticBinder binder = ContextSelectorStaticBinder.getSingleton();
ContextSelector selector = binder.getContextSelector();
selector.getLoggerContext(name).setName(name);
selector.getLoggerContext(name).getLogger(name).addAppender(appender);
@Override
public void doEncode(ILoggingEvent event) throws IOException {
String name = event.getLoggerContextVO().getName();
// ...
}
但是selector.getLoggerContext(name)
不会返回不同的实例。背景:我有一个appender将日志消息发送到WebSocket。这个appender应该能够“订阅”不同的记录器(基本上像XML中的记录器)。该网页将在不同的选项卡(“通道”)中显示日志消息。
您可以知道哪个记录器/类用布局记录日志:http://logback.qos.ch/manual/layouts.html#ConversionWord
您可以使用自定义模式筛选日志,以便在不同的选项卡中显示日志。
问题内容: 场景是这样的: 我们正在使用JBehave和Selenium进行系统,集成和端到端测试。我正在检查超过20个值的页面上的计算结果以进行验证。使用Junit Assert,如果其中一个值不正确的第一个实例,则整个测试将失败。我想做的是,如果遇到断言失败,那么测试将继续执行,这样我就可以整理一次测试而不是多次测试中所有不正确的值。 为此,我捕获了断言并将未通过验证的所有内容写到日志文件中。
在我看来,我想要达到的目标是很普通的,但我并没有让它起作用: 根记录器可以记录从其他特定记录器传递的信息消息,但是对于这个特定的记录器,我不希望任何信息消息被向上传递到层次结构上。
我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?
我希望将具有特定记录器名称、特定级别和更高级别(例如和更高级别)的消息记录到特定日志处理程序(例如文件处理程序),同时仍将所有日志消息发送到控制台。Python是2.7版。 到目前为止,我尝试创建了两个记录器: 根记录器 命名记录器 对于根记录器,我附加了,并将日志级别设置为。 然后,我将一个处理程序附加到命名记录器,并将该记录器的级别设置为。 当我现在调用使用命名记录器的模块时,我不再获得传播到
看过本章第一节的同学应该还记得,log_by_lua* 是一个请求经历的最后阶段。由于记日志跟应答内容无关,Nginx 通常在结束请求之后才更新访问日志。由此可见,如果我们有日志输出的情况,最好统一到 log_by_lua* 阶段。如果我们把记日志的操作放在 content_by_lua* 阶段,那么将线性的增加请求处理时间。 在公司某个定制化项目中,Nginx 上的日志内容都要输送到 syslo
问题内容: 我正在使用Python日志记录,由于某种原因,我的所有消息都出现两次。 我有一个配置日志记录的模块: 稍后,我调用此方法来配置日志记录: 然后,在buy_ham模块中,我将调用: 由于某种原因,所有消息都出现两次。我注释掉其中一个流处理程序,还是一样。有点奇怪,不确定为什么会这样…大声笑。假设我错过了一些显而易见的事情。 干杯,维克多 问题答案: 您正在调用两次(也许使用的方法):将返