配置 logback 以遵循 Java 配置,即 Logback 的纯 Java 配置

2024-04-28

我只是不喜欢 Logback 的 XML 或 Groovy 配置,更喜欢用 Java 进行配置(这也是因为我将在初始化后的不同时间在运行时更改配置)。

似乎对 Logback 进行 Java 配置的唯一方法是进行某种初始化劫持根追加器 https://github.com/dropwizard/dropwizard/blob/master/dropwizard-logging/src/main/java/io/dropwizard/logging/LoggingFactory.java或者具有告诉 logback 不要使用默认配置的自定义系统属性(这对于单元测试和部署来说相当烦人)。

我更喜欢的是类似logback.xml :

<configuration javaConfig="com.myco.LogBackConfig" /> 

其中 LogbackConfig 要么有一些 logback 调用的已建立的静态方法,要么只是重新实例化一个 Java bean。

也就是说,我想要一个默认的类路径资源,它会告诉 logback 使用 Java 而不是 groovy/xml。基本上我想要类似的东西Java服务加载器 http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html用于登录配置。

也许我缺少一种在 Logback 中执行此操作的方法?

UPDATE:显然Log4j2(新的 log4j)正是我想要的 http://logging.apache.org/log4j/2.x/manual/extending.html与Java ServiceLoader非常相似。


该功能刚刚合并到 logback 的源代码中。看https://github.com/qos-ch/logback/pull/181 https://github.com/qos-ch/logback/pull/181

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置 logback 以遵循 Java 配置,即 Logback 的纯 Java 配置 的相关文章

随机推荐

  • 使用 CORS 进行 React 中的 Fetch 时出现问题

    我对 CORS 完全陌生 并且遇到以下问题 我正在使用 create react app 端口 3000 调用 spring boot 端口 8080 中创建的一些 REST 服务 我将 JWT 身份验证添加到我的 REST API 中 因
  • 如何根据本地目录中的requirements.txt 文件使用pip 安装软件包?

    问题是这样的 我有一个要求 txt文件看起来像 BeautifulSoup 3 2 0 Django 1 3 Fabric 1 2 0 Jinja2 2 5 5 PyYAML 3 09 Pygments 1 4 SQLAlchemy 0 7
  • mongodb 聚合随机化(shuffle)结果

    我正在浏览一堆 mongo 文档 但找不到洗牌或随机化结果内容的可能性 有没有 特别是对于聚合框架本身来说 实际上并没有任何本地方法 因为还没有可用的运算符来执行诸如生成随机数之类的操作 因此 无论您可能投射一个字段进行排序的任何匹配 都不
  • 打开和关闭 RDP 窗口

    我有很多服务器 我想检查是否可以使用 RDP 连接到它们 我有 2000 台服务器 所以我想实现自动化 我对 PowerShell 不太熟悉 以下是我所掌握的 列表 txt ip1 ip2 ip3 ipn 这是我的代码 我在每个 ip 上循
  • 解决 emacs 错误的想法:“应用:生成子进程:exec 格式错误”

    我正在尝试将 rdebug 与 emacs 和 cygwin 一起使用 但遇到了麻烦 每当我执行 M x rdebug 并为其提供适当的脚本来运行时 它都会因错误而停止 apply Spawning child process exec f
  • 是否可以在 Cython 中声明和定义位字段?

    在 C C 中你可以声明一个位域 https en cppreference com w cpp language bit field作为结构体 通过指定用于结构体中给定字段的位数 例如 typedef struct char threeB
  • 如何在 ActionBar Sherlock 中使用滑动菜单?

    我正在尝试在使用操作栏 Sherlock 的现有项目中使用滑动菜单 但我无法做到这一点 如果您能给我一个简单的演示或教程来向我展示如何做到这一点 那就太好了 我们必须使用片段来实现滑动菜单吗 Update 当用户单击滑动菜单列表中的某个项目
  • 检查 ARReferenceImage 是否在相机视图中不再可见

    我想检查一下是否AR参考图像 https developer apple com documentation arkit arreferenceimage在相机视图中不再可见 目前我可以检查图像的节点是否在相机的视图中 但是当AR参考图像
  • 将 NSSet 转换为 Swift 数组

    在 CoreData 中我定义了一个无序的一对多关系 这种关系在 Swift 中定义如下 NSManaged var types NSMutableSet 然而 为了最好地使用 Swift 我想使用一个普通的 Swift 数组 比如Type
  • Grails 中数据库迁移的良好工作流程是什么?

    我想使用数据库迁移 http grails org plugin database migration用于数据库迁移的 grails 插件 当我第一次启动 Grails 应用程序时 所有数据库表都会自动创建 我的 DataSource gr
  • Visual Studio 2015 折叠所有快捷方式

    I have gone thru http visualstudioshortcuts com 2015 http visualstudioshortcuts com 2015 this link and Keyboard shortcut
  • gcc何时编译未使用的模板代码?

    我有以下 诚然是人为的 代码 可以在 gcc 6 中编译得很好 但不能在 gcc 7 中编译 请注意 在定义中使用了未声明的构造函数bar 如果函数在代码中的其他地方被引用 取消注释 这应该打印一个错误foo bar 导致 gcc 6 打印
  • Cakephp 图像 - 无法确定 mimetype

    蛋糕PHP 2 3 我正在上传图像 但出现错误 Can not determine the mimetype Error An Internal Error Has Occurred 在我的模型上 这是我的 validation 的一部分
  • 使用 Silverlight 在运行时在 tabcontrol 中添加 TabItem

    嗨朋友们 我是 silverlight 应用程序的新手 我创建了带有 4 个 tabitem 的 tabcontrol tabitem 的名称类似于 tab1 tab2 tab3 tab4 我需要在运行项目中添加一个选项 通过以下代码添加成
  • 字符串文字的行为令人困惑

    下面的代码中字符串文字的行为非常令人困惑 我可以理解第 1 行 第 2 行和第 3 行是true 但为什么是第 4 行false 当我打印两者的哈希码时 它们是相同的 class Hello public static void main
  • 使用 JavaScript 访问 Jekyll 变量并通过 DOM 操作传递它

    我很可能有错误逻辑 但我刚刚学习 JavaScript 和 Jekyll 我的目标是通过 JavaScript 操作 HTML 元素 并将一些 Jekyll 变量放置在该元素的内部 HTML 中 一切都从本地开发目录加载jekyll ser
  • 如何使用 DLL 来模拟静态库的“应用程序内全局变量的多个实例”行为?

    我们有一个用 C C 编写的应用程序 它被分解为单个 EXE 和多个 DLL 这些 DLL 中的每一个都使用相同的静态库 utilities lib 实用程序静态库中的任何全局变量实际上在应用程序内运行时都会有多个实例 每个模块 即 DLL
  • STM32:从自定义引导加载程序跳转到应用程序时发生硬故障

    我正在开发带有自定义引导加载程序和应用程序的 STM32F401 MCU 编译器是GCC 5 2 1 没有运行优化 在以下跳转序列后的第一次中断后 我遇到了硬故障 引导加载程序 gt 应用程序 gt 引导加载程序 gt 应用程序 从引导加载
  • 数据编织转换

    我有 POST 方法的以下有效负载的输入 order Column X X Column Y Y Column Z Z Column W div 1 some text div 2 true div 3 2 mapper A
  • 配置 logback 以遵循 Java 配置,即 Logback 的纯 Java 配置

    我只是不喜欢 Logback 的 XML 或 Groovy 配置 更喜欢用 Java 进行配置 这也是因为我将在初始化后的不同时间在运行时更改配置 似乎对 Logback 进行 Java 配置的唯一方法是进行某种初始化劫持根追加器 http