添加Log需要四步:
一、引用log4net.dll,详见附件:http://pan.baidu.com/s/1c0hab2g
二、项目根目录下,添加 log4net.xml
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> 5 </configSections> 6 <log4net> 7 <!--定义输出到文件中--> 8 <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 9 <!--定义文件存放位置--> 10 <file value="D:/log4netfile/BYPlatformWAPI.log" /> 11 <!--是否追加到文件--> 12 <appendToFile value="true" /> 13 <!--名称是否可以更改 为false为可以更改--> 14 <param name="StaticLogFileName" value="false"/> 15 <!--变换的形式为日期--> 16 <rollingStyle value="Date" /> 17 <!--日期的格式--> 18 <datePattern value="yyyyMMdd-HHmmss" /> 19 <layout type="log4net.Layout.PatternLayout"> 20 <!--<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />--> 21 <conversionPattern value="记录时间:%date 日志级别:%level Log类:%logger - Log描述: %message%newline" /> 22 </layout> 23 </appender> 24 25 <!--定义输出到控制台命令行中--> 26 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 27 <layout type="log4net.Layout.PatternLayout"> 28 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 29 </layout> 30 </appender> 31 <!--定义输出到windows事件中--> 32 <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> 33 <layout type="log4net.Layout.PatternLayout"> 34 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 35 </layout> 36 </appender> 37 <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb--> 38 <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender"> 39 <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" /> 40 <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" /> 41 <!--定义各个参数--> 42 <parameter> 43 <parameterName value="@logDate" /> 44 <dbType value="String" /> 45 <size value="240" /> 46 <layout type="log4net.Layout.PatternLayout"> 47 <conversionPattern value="%date" /> 48 </layout> 49 </parameter> 50 <parameter> 51 <parameterName value="@thread" /> 52 <dbType value="String" /> 53 <size value="240" /> 54 <layout type="log4net.Layout.PatternLayout"> 55 <conversionPattern value="%thread" /> 56 </layout> 57 </parameter> 58 <parameter> 59 <parameterName value="@logLevel" /> 60 <dbType value="String" /> 61 <size value="240" /> 62 <layout type="log4net.Layout.PatternLayout"> 63 <conversionPattern value="%level" /> 64 </layout> 65 </parameter> 66 <parameter> 67 <parameterName value="@logger" /> 68 <dbType value="String" /> 69 <size value="240" /> 70 <layout type="log4net.Layout.PatternLayout"> 71 <conversionPattern value="%logger" /> 72 </layout> 73 </parameter> 74 <parameter> 75 <parameterName value="@message" /> 76 <dbType value="String" /> 77 <size value="240" /> 78 <layout type="log4net.Layout.PatternLayout"> 79 <conversionPattern value="%message" /> 80 </layout> 81 </parameter> 82 </appender> 83 <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。--> 84 <root> 85 <level value="ALL" /> 86 <!--文件形式记录日志--> 87 <appender-ref ref="LogFileAppender" /> 88 <!--控制台控制显示日志 89 <appender-ref ref="ConsoleAppender" />--> 90 <!--Windows事件日志 91 <appender-ref ref="EventLogAppender" />--> 92 <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉 93 <appender-ref ref="AdoNetAppender_Access" /> 94 --> 95 </root> 96 97 </log4net> 98 </configuration>
三、在PropertiesAssemblyInfo.cs文件的底部,添加一句:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
1 using System.Reflection; 2 using System.Runtime.CompilerServices; 3 using System.Runtime.InteropServices; 4 5 // 有关程序集的常规信息通过下列特性集 6 // 控制。更改这些特性值可修改 7 // 与程序集关联的信息。 8 [assembly: AssemblyTitle("Web")] 9 [assembly: AssemblyDescription("")] 10 [assembly: AssemblyConfiguration("")] 11 [assembly: AssemblyCompany("")] 12 [assembly: AssemblyProduct("Web")] 13 [assembly: AssemblyCopyright("版权所有(C) 2014")] 14 [assembly: AssemblyTrademark("")] 15 [assembly: AssemblyCulture("")] 16 17 // 将 ComVisible 设置为 false 会使此程序集中的类型 18 // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的某个类型, 19 // 请针对该类型将 ComVisible 特性设置为 true。 20 [assembly: ComVisible(false)] 21 22 // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 [assembly: Guid("940997e2-1820-4f8b-b280-2e1bf426fe27")] 24 25 // 程序集的版本信息由下列四个值组成: 26 // 27 // 主版本 28 // 次版本 29 // 内部版本号 30 // 修订号 31 // 32 // 可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值, 33 // 方法是按如下所示使用“*”: 34 [assembly: AssemblyVersion("1.0.0.0")] 35 [assembly: AssemblyFileVersion("1.0.0.0")] 36 37 //添加下面这句 38 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
四、在要实现的类中添加全局变量:
1 public class ConnectController : ApiController 2 { 3 #region 全局变量 4 /// <summary> 5 /// 日志引用 6 /// </summary> 7 private static log4net.ILog Log = LogManager.GetLogger("类名"); 8 #endregion 9 10 public void Main() 11 { 12 try 13 { 14 Log.Debug(" "); 15 Log.Debug("Log 开始!"); 16 } 17 catch (Exception ex) 18 { 19 Log.Error("Log 异常 :", ex); 20 } 21 finally 22 { 23 Log.Debug("Log 结束!"); 24 } 25 } 26 }
个人网站正在搭建中:http://Amoysec.com,准备使用bootstrap + knockoutjs + MVC +WebAPI + EF6.0来做,其中对knockoutjs也算有不少的了解了,虽然比不上博客园的汤姆大叔,但也全凭自己对一份chm文档摸索出了不少。欢迎一起探讨!
转载请注明出处,谢谢:http://www.cnblogs.com/mose/p/Amoy.html
sql查询优化整理
MYSQL 调优学习笔记
记一次失败的大厂面试
ElasticSearch 6.3.2 整合 Springboot 2.1.10.RELEASE 版本,使用 Logstash 导入 mysql 数据
ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动
浅谈 KMP 算法
转载:Docker入门只需看这一篇就够了
Spring Boot 监听 Activemq 中的特定 topic ,并将数据通过 RabbitMq 发布出去
hadoop入门之海量Web日志分析 用Hadoop提取KPI统计指标