Spring中的日志消息库

时间:2018-12-05 12:38:12

标签: java spring logging log4j

我正在使用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 =“通过“ + User.getUuid()注册请求

春季有办法吗?是否有其他方法可以保存所有日志消息库?您是否熟悉可以编排的工具?

谢谢

1 个答案:

答案 0 :(得分:1)

这是一个简单的示例,您可以根据需要进行修改:

在您的 private Timer _timer; private SecondWindow _secondWindow; public MainWindow() { InitializeComponent(); CreateVisualisationWindow(); _timer = new Timer(Callback); _timer.Change(5000, 5000); } private void Callback(object state) { UpdateSecondWindowText(); } private void CreateVisualisationWindow() { Thread VisualisationWIndowThread = new Thread(ThreadStartingPoint); VisualisationWIndowThread.SetApartmentState(ApartmentState.STA); VisualisationWIndowThread.IsBackground = true; VisualisationWIndowThread.Start(); } private void ThreadStartingPoint() { _secondWindow = new SecondWindow(); _secondWindow.SecondWindowTextBlock.Text = "Hello"; _secondWindow.Show(); Dispatcher.Run(); } private void UpdateSecondWindowText() { _secondWindow.Dispatcher.BeginInvoke(new Action(() => { _secondWindow.SecondWindowTextBlock.Text = _secondWindow.SecondWindowTextBlock.Text + " World"; })); } 中创建一个文件src/main/resources,其内容为:

messages.properties

test.message=TEST MESSAGE {0} 是传递给本地化字符串的“参数”(示例中的{0}

然后您可以将您的+ User.getUuid()称为:

logger

再次将第三个参数logger.debug(MarkerManager.getMarker("TEST"), new LocalizedMessage(ResourceBundle.getBundle("messages"), "test.message", "hello!")); 链接到上面"hello"中定义的{0}占位符。

打印到控制台的输出为:

messages.properties