我想提供带有自己的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/