Spring 中的日志消息库

Bank of log messages in Spring

我正在使用 org.apache.logging.log4j.Logger 进行日志记录:

private static final Logger logger = LogManager.getLogger(MainController.class)

然后

logger.info("Register request from " + User.getUuid());

我想将记录器生成的存储库的所有消息保存在一个地方,例如属性文件,以便我可以轻松地将它们发送给技术出版部门审查。

例如,理想情况下会有一个文件(我们称之为 messages.properties),其中包含以下内容:

register_request_from_user_uuid="Register request from " + User.getUuid()

Spring有没有办法做到这一点?是否有任何替代方法来保存所有日志消息的银行?您熟悉可以编排它的工具吗?

谢谢,

这里是一个简单的例子,大家可以根据自己的需要进行修改:

在您的 src/main/resources 中创建一个文件 messages.properties,其内容为:

test.message=TEST MESSAGE {0}

{0} 是要传递给本地化字符串的 "parameter",(示例中的 + User.getUuid()

然后您可以将您的 logger 称为:

logger.debug(MarkerManager.getMarker("TEST"), 
            new LocalizedMessage(ResourceBundle.getBundle("messages"), "test.message", "hello!"));

再次将第三个参数 "hello" 连接到上面 messages.properties 中定义的 {0} 占位符。

打印到控制台的输出是:

2018-12-05 15:12:09.902 DEBUG 23376 --- [ restartedMain] com.example.SpringDemoApplication : TEST MESSAGE: hello!