我有一个VB控制台应用程序,我正在尝试动态命名我的FileAppender的log4net输出文件。
正在创建日志文件并且它具有正确的内容,问题是正在使用名称“%property {LogFilePath}”创建文件。换句话说,它根本就没有进行字符串替换。
在app.config中:
<log4net>
<appender name="myAppender" type="log4net.Appender.FileAppender">
<file value="%property{LogFilePath}" />
<appendToFile value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="myAppender" />
</root>
</log4net>
在我的VB文件中:
Private _logger As ILog
Private Sub InitializeLogger()
log4net.GlobalContext.Properties("LogFilePath") = "C:\Logs\myLog.log"
XmlConfigurator.Configure()
_logger = LogManager.GetLogger("myAppender")
End Sub
总结一下,正在创建日志文件并且它确实具有预期内容,唯一的问题是日志文件名保留为“%property {LogFilePath}”而不是被“C:\ Logs \”替换myLog.log“
非常感谢任何帮助:)
答案 0 :(得分:2)
你能错过文件属性中的类型吗?
<file type="log4net.Util.PatternString" value="%property{LogFilePath}" />
有关详细信息,请参阅此处:
http://logging.apache.org/log4net/release/sdk/log4net.Util.PatternString.html