我正在使用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()注册请求
春季有办法吗?是否有其他方法可以保存所有日志消息库?您是否熟悉可以编排的工具?
谢谢
答案 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