有两个实例,即lisxyz和lisabc,并且部署在它们上的Web应用程序指向相同的文件装载来写入日志文件。如何为每个实例生成日志文件,即类似log_lisxyz_{timestamp}.log
的文件-仅包含lisxyz特定的日志,log_lisabc_{timestamp}.log
包含lisabc特定的日志。
哪种方法(默认的tomcat内部日志记录-JULI或log4j)合适并且具有更多控制权?
答案 0 :(得分:0)
如何为每个实例生成日志文件
每Tomcat JULI,您可以在public static class Util
{
public static async Task RunOnUiThread(Action a)
{
await Application.Current.Dispatcher.InvokeAsync(() => { a(); });
}
}
public partial class MainWindow : Window
{
private async Task Write(string message)
{
var action = new Action(() =>
{
var i = OutputListBox.Items.Count - 1;
if (i >= 0)
{
OutputListBox.Items[i] = OutputListBox.Items[i] + message;
}
else
{
OutputListBox.Items.Add(message);
}
});
await Util.RunOnUiThread(action);
}
}
中放置一个logging.properties
:
WEB-INF/classes
默认情况下,org.apache.juli.FileHandler
将在handlers = org.apache.juli.FileHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = ${classloader.webappName}_.
之后但在prefix
之前添加时间戳。
哪种方法(默认的tomcat内部日志记录-JULI或log4j)合适并且具有更多控制权?
Log4j也包含在Tomcat文档中。它将对文件名中的日期模式提供更多支持。我认为任何一种都可以满足给出的要求。