log4j日志文件上的插件版本
我正在开发一个RCP应用程序,并使用log4j生成日志。每当记录异常时,我都希望在日志文件中包含一行代码来标识应用程序版本 我可以在log4j.properties文件的log4j.appender.file.layout.ConversionPattern行上强制执行,只需将其写下来,但是每次更改版本号时,我都必须记住要更改它,这对我来说太容易出错 在log4j.properties文件上或通过编程方式,是否有一种方法可以使记录的值随着我更改应用程序版本号而改变log4j日志文件上的插件版本,log4j,eclipse-rcp,Log4j,Eclipse Rcp,我正在开发一个RCP应用程序,并使用log4j生成日志。每当记录异常时,我都希望在日志文件中包含一行代码来标识应用程序版本 我可以在log4j.properties文件的log4j.appender.file.layout.ConversionPattern行上强制执行,只需将其写下来,但是每次更改版本号时,我都必须记住要更改它,这对我来说太容易出错 在log4j.properties文件上或通过编程方式,是否有一种方法可以使记录的值随着我更改应用程序版本号而改变 谢谢。您可以要求应用程序从pl
谢谢。您可以要求应用程序从
plugin.properties
甚至是自定义my.properties
文件获取版本信息,如:
然后从代码中调用:
然后可以在会话期间将其存储在一个静态变量中,并在log4j输出中重用。听起来您希望能够以编程方式配置log4j。可以使用log4j PropertyConfigurator.configure()方法提供包含日志属性的属性对象。在转换模式中,可以将版本号指定为常量。另外,我建议您从定义应用程序的主插件(bundle)中获取版本号,这样您就可以使用普通的Eclipse版本控制来定义它。您可以使用如下代码:
public String getVersion()
{
Bundle bundle = Platform.getBundle("com.yourcompany.yourproject.pluginid");
Dictionary headers = bundle.getHeaders();
return (String)headers.get("Bundle-Version"); //$NON-NLS-1$
}
MyPlugin.getInstance().getMyProperties().getString("foo");
public String getVersion()
{
Bundle bundle = Platform.getBundle("com.yourcompany.yourproject.pluginid");
Dictionary headers = bundle.getHeaders();
return (String)headers.get("Bundle-Version"); //$NON-NLS-1$
}