在 log4net FileAppender 文件名中使用程序集版本
Using the assembly version in log4net FileAppender file name
我有一个 log4net 日志文件追加器,定义如下。它工作正常。我想把 exe 的汇编版本作为文件名,以便更好地区分正在播放的版本。因此,在下面的示例中,如果我的应用程序的程序集版本是 1.2.3.4
,我想要 ClientAppLog_v1.2.3.4.txt
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="${USERPROFILE}\MyApp Logs\ClientAppLog.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]
" />
<param name="Footer" value="[Footer]
" />
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
虽然 log4net 可能不直接支持这些,但您可以使用通用的 log4net 属性 轻松做到这一点,您在创建记录器之前设置它,或者为了安全起见,在配置 log4net 之前:
Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
log4net.GlobalContext.Properties["LogFileName"] = version + "_logfile.txt";
log4net.Config.XmlConfigurator.Configure(…);
并在配置中将 <param name="File"
替换为:
<file type="log4net.Util.PatternString"
value="${USERPROFILE}\MyApp Logs\%property{LogFileName}" />
结果:
我有一个 log4net 日志文件追加器,定义如下。它工作正常。我想把 exe 的汇编版本作为文件名,以便更好地区分正在播放的版本。因此,在下面的示例中,如果我的应用程序的程序集版本是 1.2.3.4
,我想要 ClientAppLog_v1.2.3.4.txt<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="${USERPROFILE}\MyApp Logs\ClientAppLog.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]
" />
<param name="Footer" value="[Footer]
" />
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
虽然 log4net 可能不直接支持这些,但您可以使用通用的 log4net 属性 轻松做到这一点,您在创建记录器之前设置它,或者为了安全起见,在配置 log4net 之前:
Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
log4net.GlobalContext.Properties["LogFileName"] = version + "_logfile.txt";
log4net.Config.XmlConfigurator.Configure(…);
并在配置中将 <param name="File"
替换为:
<file type="log4net.Util.PatternString"
value="${USERPROFILE}\MyApp Logs\%property{LogFileName}" />
结果: