使用项目程序集信息的 log4net 文件路径
log4net file path using project Assembly info
我在 log4net.config
中定义了我的记录器:
<!-- Setup Rolling Log File to log all information -->
<appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="${ProgramData}\My Company\My Product\log\Debug" />
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="_yyyy-MM.\tx\t"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
有没有一种方法可以使用项目的 Assembly.cs
信息来构建日志路径,例如:
<file value="${ProgramData}\${AssemblyCompany}\${AssemblyProduct}\log\Debug" />
您可以通过在文件配置中使用 log4net 的 GlobalContext along with a Pattern Layout 来做到这一点。
所以在配置之前设置值(有一个从 AssemblyInfo here 获取它们的示例)
// Properties must be set before configuration
log4net.GlobalContext.Properties["Company"] = "Company Name";
log4net.GlobalContext.Properties["Product"] = "Product Name";
log4net.Config.XmlConfigurator.Configure(…);
然后在config中(注意文件类型必须是PatternString
):
<file type="log4net.Util.PatternString"
value="${ProgramData}\%property{Company}\%property{Product}\Log\Debug\log.log" />
这将计算为 C:\ProgramData\Company Name\Product Name\Log\Debug\log.log
我在 log4net.config
中定义了我的记录器:
<!-- Setup Rolling Log File to log all information -->
<appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="${ProgramData}\My Company\My Product\log\Debug" />
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="_yyyy-MM.\tx\t"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
有没有一种方法可以使用项目的 Assembly.cs
信息来构建日志路径,例如:
<file value="${ProgramData}\${AssemblyCompany}\${AssemblyProduct}\log\Debug" />
您可以通过在文件配置中使用 log4net 的 GlobalContext along with a Pattern Layout 来做到这一点。
所以在配置之前设置值(有一个从 AssemblyInfo here 获取它们的示例)
// Properties must be set before configuration
log4net.GlobalContext.Properties["Company"] = "Company Name";
log4net.GlobalContext.Properties["Product"] = "Product Name";
log4net.Config.XmlConfigurator.Configure(…);
然后在config中(注意文件类型必须是PatternString
):
<file type="log4net.Util.PatternString"
value="${ProgramData}\%property{Company}\%property{Product}\Log\Debug\log.log" />
这将计算为 C:\ProgramData\Company Name\Product Name\Log\Debug\log.log