在spring boot应用程序中用slf4j替换java平台系统记录器
我有一个spring boot应用程序构建为多模块gradle项目(旧式,而不是花哨的拼图) 我想要实现的是用sl4j和logback替换java平台记录器(例如,SSlLogger/System.getLogger),它们在我的应用程序中使用,并在运行时由spring boot admin server管理。我需要我所有的日志记录器写入文件,而不是控制台,否则我将无法在Logz.io中看到日志。 我不控制我的应用程序的部署方式,但我控制构建胖jar的方式(因此,带有终端命令“java-…”的手册并没有太大帮助:() 我开始跟着导游走,但被卡住了 为了简单起见,我的结构是->在spring boot应用程序中用slf4j替换java平台系统记录器,java,spring-boot,logback,slf4j,java-module,Java,Spring Boot,Logback,Slf4j,Java Module,我有一个spring boot应用程序构建为多模块gradle项目(旧式,而不是花哨的拼图) 我想要实现的是用sl4j和logback替换java平台记录器(例如,SSlLogger/System.getLogger),它们在我的应用程序中使用,并在运行时由spring boot admin server管理。我需要我所有的日志记录器写入文件,而不是控制台,否则我将无法在Logz.io中看到日志。 我不控制我的应用程序的部署方式,但我控制构建胖jar的方式(因此,带有终端命令“java-…”的手
build.gradle
/application-module
build.gradle (combines 3 other modules)
/src /...
/rest-module
build.gradle
/src /...
/service-module
build.gradle
/src /...
/persistency-module
build.gradle
/src /...
所以,我想再添加一个模块
/log-module
/src -> with actual classes
module-info.java
Slf4jLogger implements System.Logger
Slf4jLoggerFinder extends System.LoggerFinder
并将其包含到我的应用程序模块中
但当我尝试构建它时,我得到了“error:modulenotfound:org.slf4j”,并且应用程序不是build
那么,我做错了什么?我需要什么额外的插件/配置?它甚至能让我实现我的目标吗?好的,我设法找到了解决方案。它是 因此,我甚至不需要jigsaw模块——只需要JDK的服务提供者机制 因此,实际上您需要3个文件[这些是pastebin示例的id;但它们几乎与java-9-logging-api文章中的相同]
- AkXY3zgu->适配器类
- YFUkZwat->记录器提供程序
- CD6NNibj->meta inf文件-这是最棘手的部分(文件名:)