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!
我正在使用 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!