java - 每个 jar 的 logback 配置文件

标签 java logging jar classpath logback

我想提供带有自己的jar文件logback日志记录配置。 配置 logback 的常见方法是使用 logback 库从类路径的根读取的默认文件 logback.xml(适用于应用程序服务器或不适用于应用程序服务器)。

你可以include主logback配置文件中的另一个文件(没有尝试),但我不知道哪些jar将在类路径中以及哪些需要日志配置。

此外,这些 jar 可以在命令行应用程序或应用程序服务器(共享库或非共享库)中使用。

我想也许我可以获取 jar 的文件路径并检查那里是否有配置文件,然后尝试以编程方式读取配置并使用 JoranConfigurator 加载它。

// This is the way I find to get the path to the jar
String path = ClassThatWantsALogger.class.getProtectionDomain().getCodeSource()
            .getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");// the path to the jar

但是这种方法可能会失败,因为取决于安全限制,在 Linux 或应用程序服务器中可能会失败。对于可能有更好解决方案的问题来说,这是一种艰难的方法。

您是否想象一种管理 jar 的方法可以拥有适用于任何环境的自己的 logback 配置文件?

最佳答案

我会cite myself回答您的问题:日志记录配置是客户端应用程序的关注点(关注点分离)。记录地点、方式和内容由他决定。我们的图书馆不得对其强加任何内容。

关于java - 每个 jar 的 logback 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505674/

相关文章:

c# - asp.net 4.6.1 无法使用 NLog 创建日志文件

Java - 使用函数式接口(interface)和 lambda 表达式进行日志记录

java - 无法使用 execl() 启动 jar

java - SnakeYAML 保存不正确

Java线程内存泄漏

java - 如何包装来自雅虎天气 api 的数据?

java.lang.IllegalStateException : Cannot call sendRedirect() after the response has been committed 错误

java - 跨语言(Java、C++、Python)系统使用哪个日志库

Java 程序在 Eclipse 中运行良好,但不能作为 .jar 文件运行(配置路径是否错误?)

java - 没有 META-INF 的 Ant 构建 Jar