我在我的.NET项目中使用log4net,并且使用以下名称创建日志:
C:\\Inetpub\\zz_appLogs\\<hard coded sitename>\\<yyyyMMdd>\\<hard coded file name with txt extension>
现在,我想在IIS中使用当前站点名称更改日志文件名。我在log4net设置中尝试了这个,但它没有用:
<file type="log4net.Util.PatternString"
value="C:\Inetpub\zz_appLogs\MYsiteLogs\" />
...
<datePattern
value="yyyyMMdd\\"%property{CURRENTSITENAME}_info.txt"" />
结果日志的文件名如下:
C:\Inetpub\zz_ErrorLogs\MVCdoctoolLogs\20100304\
%property{CURRENTSITENAME}_error.txt`
我在项目的Global.ascx文件中的app_start中设置属性:
log4net.GlobalContext.Properties["CURRENTSITENAME"] =
System.Web.Hosting.HostingEnvironment.SiteName;
你能告诉我如何在log4net创建的结果txt文件中设置IIS的网站名称。
提前谢谢 :)答案 0 :(得分:0)
我试过自己,以下给了我预期的结果。我使用控制台应用程序进行了测试,但我不知道这应该如何改变:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="c:\temp\%date{yyyyMMdd}\%property{SiteName}.txt" />
<rollingStyle value="Size" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%2thread] %-5level %logger - %message%newline" />
</layout>
</appender>