本文转自:http://www.cnblogs.com/weiweictgu/p/5848805.html
1、升级到log4net的最新版
PM下执行
Install-Package log4net
还是无法解决的,使用下面的方法
2、使用Nlog替换之,详见https://github.com/NLog/NLog/wiki/Tutorial
安装
Install-Package NLog.Config
NLog使用方法比log4net更为简单,配置文件如下,如果成windows程序需将NLog.config自动复制到bin下面
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 <?xml version="1.0" encoding="utf-8" ?>
2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
5 autoReload="true"
6 throwExceptions="false"
7 internalLogLevel="Off" internalLogFile="F: emp20160907NLoglog
log-internal.log">
8
9 <!-- optional, add some variables
10 https://github.com/nlog/NLog/wiki/Configuration-file#variables
11 -->
12 <variable name="myvar" value="myvalue"/>
13
14 <!--
15 See https://github.com/nlog/nlog/wiki/Configuration-file
16 for information on customizing logging rules and outputs.
17 -->
18 <targets>
19
20 <!--
21 add your targets here
22 See https://github.com/nlog/NLog/wiki/Targets for possible targets.
23 See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
24 -->
25
26 <!--
27 Write events to a file with the date in the filename.
28 <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
29 layout="${longdate} ${uppercase:${level}} ${message}" />
30 -->
31 <target name="logfile" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" />
32 <target name="console" xsi:type="ColoredConsole" />
33 </targets>
34
35 <rules>
36 <!-- add your logging rules here -->
37
38 <!--
39 Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"
40 <logger name="*" minlevel="Debug" writeTo="f" />
41 -->
42 <logger name="*" minlevel="Debug" writeTo="logfile" />
43 <logger name="*" minlevel="Info" writeTo="console" />
44 </rules>
45 </nlog>
调用代码:
1 Logger logger = LogManager.GetCurrentClassLogger();
2
3
4 logger.Trace("Sample trace message");
5 logger.Debug("Sample debug message");
6 logger.Info("Sample informational message");
7 logger.Warn("Sample warning message");
8 logger.Error("Sample error message");
9 logger.Fatal("Sample fatal error message");
10
11
12 logger.Info("wilson测试 日志日期:{0}", DateTime.Now);
执行结果,非常漂亮的控制台输出:
web站点配置log写入到sql server数据库,需要安装NLog.Web
Install-Package NLog.Web
配置文件如下
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 <?xml version="1.0" encoding="utf-8" ?>
2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
5 autoReload="true"
6 throwExceptions="false"
7 internalLogLevel="Off" internalLogFile="F: emp20160907NLoglog
log-internal.log">
8
9 <!-- optional, add some variables
10 https://github.com/nlog/NLog/wiki/Configuration-file#variables
11 -->
12 <variable name="myvar" value="myvalue"/>
13
14 <!--
15 See https://github.com/nlog/nlog/wiki/Configuration-file
16 for information on customizing logging rules and outputs.
17 -->
18 <targets>
19
20 <!--
21 add your targets here
22 See https://github.com/nlog/NLog/wiki/Targets for possible targets.
23 See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
24 -->
25
26 <!--
27 Write events to a file with the date in the filename.
28 <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
29 layout="${longdate} ${uppercase:${level}} ${message}" />
30 -->
31 <target name="logfile" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" />
32 <target name="console" xsi:type="ColoredConsole" />
33
34 <target name="db"
35 xsi:type="Database"
36 connectionStringName="NLogConn"
37 commandType="StoredProcedure"
38 commandText="[dbo].[NLog_AddEntry_p]"
39 >
40 <parameter name="@machineName" layout="${machinename}" />
41 <parameter name="@siteName" layout="${iis-site-name}" />
42 <parameter name="@logged" layout="${date}" />
43 <parameter name="@level" layout="${level}" />
44 <parameter name="@username" layout="${aspnet-user-identity}" />
45 <parameter name="@message" layout="${message}" />
46 <parameter name="@logger" layout="${logger}" />
47 <parameter name="@properties" layout="${all-event-properties:separator=|}" />
48 <parameter name="@serverName" layout="${aspnet-request:serverVariable=SERVER_NAME}" />
49 <parameter name="@port" layout="${aspnet-request:serverVariable=SERVER_PORT}" />
50 <parameter name="@url" layout="${aspnet-request:serverVariable=HTTP_URL}" />
51 <parameter name="@https" layout="${when:inner=1:when='${aspnet-request:serverVariable=HTTPS}' == 'on'}${when:inner=0:when='${aspnet-request:serverVariable=HTTPS}' != 'on'}" />
52 <parameter name="@serverAddress" layout="${aspnet-request:serverVariable=LOCAL_ADDR}" />
53 <parameter name="@remoteAddress" layout="${aspnet-request:serverVariable=REMOTE_ADDR}:${aspnet-request:serverVariable=REMOTE_PORT}" />
54 <parameter name="@callSite" layout="${callsite}" />
55 <parameter name="@exception" layout="${exception:tostring}"