3_C# 实现VMS客户端——使用log4net 写日志
2014-09-09 13:30
429 查看
声明:
本博客为原创博客,主要讲述使用C#语言调用服务端SDK方式完成VMS客户端完整功能实现,转载请声明出处。
如有技术问题或需交流可直接联系本人邮箱:chuiwenwei@163.com
简述:
程序在运行过程中会出现各种各样不可控的问题,那么在运行过程中为了完成对整个程序的把控,最好的方法就是记录运行日志包括异常运行日志和一些调试日志等。log4net是在.Net下运行非常稳定且好部署的写日志动态库,本篇主要简述下log4net的部署和配置参数。博客最后会提供一个简易的Demo供参考。
目录:
log4Net简介
log4Net部署
log4Net参数含义
log4Net部署Demo参考
1.log4Net简介
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。 log4net是Apache软件基金会Apache Logging Services工程的一部分。Apache日志服务工程致力于为程序调试和审计提供跨语言的日志服务。
利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。
要想获取最新版本的log4net组件库可登录官方网站:http://logging.apache.org/log4net/。
2.log4Net部署
log4Net的使用是通过配置.Net的应用程序配置文件来实现动态写日志到各种目标的工具,这里主要讲述配置输出到本地配置文件中。
配置如下,可直接复制粘贴至项目App.Config文件中,然后根据实际情况做适量修改即可。
第一步:在程序的AssemblyInfo.cs文件最后添加一行代码,使配置针对项目中所有cs文件都适用:
第二步:修改App.Config文件,如果没有此文件可以在项目文件中添加配置文件。添加配置信息:
第三步:
在项目工程中添加log4net引用,在使用的cs文件标题中创建log4net的实例,然后开始使用其写日志。
3..log4Net部署Demo参考
Demo中将会简述使用log4net动态库按照上面的配置写日志信息进日志文件。
Demo配置:
AssemblyInfo文件添加配置:
App.Config文件添加log4net配置:
Demo代码:
将log4net动态库放入到根目录下,然后添加log4net引用。
在窗体打开时写Info日志和Error日志。如下所示:
Demo效果:
Demo下载地址:http://pan.baidu.com/s/1ntBhOrZ
本博客为原创博客,主要讲述使用C#语言调用服务端SDK方式完成VMS客户端完整功能实现,转载请声明出处。
如有技术问题或需交流可直接联系本人邮箱:chuiwenwei@163.com
简述:
程序在运行过程中会出现各种各样不可控的问题,那么在运行过程中为了完成对整个程序的把控,最好的方法就是记录运行日志包括异常运行日志和一些调试日志等。log4net是在.Net下运行非常稳定且好部署的写日志动态库,本篇主要简述下log4net的部署和配置参数。博客最后会提供一个简易的Demo供参考。
目录:
log4Net简介
log4Net部署
log4Net参数含义
log4Net部署Demo参考
1.log4Net简介
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。 log4net是Apache软件基金会Apache Logging Services工程的一部分。Apache日志服务工程致力于为程序调试和审计提供跨语言的日志服务。
利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。
要想获取最新版本的log4net组件库可登录官方网站:http://logging.apache.org/log4net/。
2.log4Net部署
log4Net的使用是通过配置.Net的应用程序配置文件来实现动态写日志到各种目标的工具,这里主要讲述配置输出到本地配置文件中。
配置如下,可直接复制粘贴至项目App.Config文件中,然后根据实际情况做适量修改即可。
第一步:在程序的AssemblyInfo.cs文件最后添加一行代码,使配置针对项目中所有cs文件都适用:
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
第二步:修改App.Config文件,如果没有此文件可以在项目文件中添加配置文件。添加配置信息:
<configuration> <!-- Register a section handler for the log4net section --> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <appSettings> <!-- To enable internal log4net logging specify the following appSettings key --> <!-- <add key="log4net.Internal.Debug" value="true"/> --> </appSettings> <!-- This section contains the log4net configuration settings --> <log4net> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">---------注释:写入到文件中 <file value="Log/"/> <!-- Example using environment variables in params --> <!-- <file value="${TMP}\log-file.txt" /> --> <!--<sppendToFile value="true" />--> <!-- An alternate output encoding can be specified --> <!-- <encoding value="unicodeFFFE" /> --> <appendToFile value="true"/> <rollingStyle value="Date"/> <param name="MaxSizeRollBackups" value="30"/> <param name="StaticLogFileName" value="false"/> <param name="DatePattern" value=""VMS-["yyyy-MM-dd"].txt""/>------------根据实际情况修改为自己想要的文件名称格式 <StaticLogFileName value="false"/> <!----> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%M] < - %message%newline"/> </layout> <!-- Alternate layout using XML <layout type="log4net.Layout.XMLLayout" /> --> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">---------------注释:写入到控制台程序 <!--<target value="Console.Error" />--> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <appender name="TraceAppender" type="log4net.Appender.TraceAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">----------注释:写入到Windows事件中 <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">-------注释:写入到数据库里面 <connectionString value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=EventLog.mdb"/> <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/> <parameter> <parameterName value="@log_date"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date"/> </layout> </parameter> <parameter> <parameterName value="@thread"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread"/> </layout> </parameter> <parameter> <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level"/> </layout> </parameter> <parameter> <parameterName value="@logger"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger"/> </layout> </parameter> <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="1024"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message"/> </layout> </parameter> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="INFO"/> <!--<appender-ref ref="LogFileAppender" /> <appender-ref ref="EventLogAppender" /> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="AdoNetAppender_Access" />-->----------------------------注释:此处将上面三种写入目标注释掉了,即不往里面写日志了,此处只保留了将日志信息写入到文件中。 <appender-ref ref="LogFileAppender"/> <appender-ref ref="TraceAppender"/> </root> </log4net> </configuration>
第三步:
在项目工程中添加log4net引用,在使用的cs文件标题中创建log4net的实例,然后开始使用其写日志。
private log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
3..log4Net部署Demo参考
Demo中将会简述使用log4net动态库按照上面的配置写日志信息进日志文件。
Demo配置:
AssemblyInfo文件添加配置:
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
App.Config文件添加log4net配置:
<log4net> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> <file value="Log/"/> <!-- Example using environment variables in params --> <!-- <file value="${TMP}\log-file.txt" /> --> <!--<sppendToFile value="true" />--> <!-- An alternate output encoding can be specified --> <!-- <encoding value="unicodeFFFE" /> --> <appendToFile value="true"/> <rollingStyle value="Date"/> <param name="MaxSizeRollBackups" value="30"/> <param name="StaticLogFileName" value="false"/> <param name="DatePattern" value=""log4netDemo-["yyyy-MM-dd"].txt""/> <StaticLogFileName value="false"/> <!----> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%M] < - %message%newline"/> </layout> <!-- Alternate layout using XML <layout type="log4net.Layout.XMLLayout" /> --> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <!--<target value="Console.Error" />--> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <appender name="TraceAppender" type="log4net.Appender.TraceAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender"> <connectionString value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=EventLog.mdb"/> <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/> <parameter> <parameterName value="@log_date"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date"/> </layout> </parameter> <parameter> <parameterName value="@thread"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread"/> </layout> </parameter> <parameter> <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level"/> </layout> </parameter> <parameter> <parameterName value="@logger"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger"/> </layout> </parameter> <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="1024"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message"/> </layout> </parameter> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="INFO"/> <!--<appender-ref ref="LogFileAppender" /> <appender-ref ref="EventLogAppender" /> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="AdoNetAppender_Access" />--> <appender-ref ref="LogFileAppender"/> <appender-ref ref="TraceAppender"/> </root> </log4net>此时他会在根目录下创建一个文件夹名称为:Log,并按照天自动生成一个文件名称,格式为:log4netDemo+日期。
Demo代码:
将log4net动态库放入到根目录下,然后添加log4net引用。
在窗体打开时写Info日志和Error日志。如下所示:
private void Form1_Load(object sender, EventArgs e) { log.Info("测试"); log.Error("测试"); }
Demo效果:
Demo下载地址:http://pan.baidu.com/s/1ntBhOrZ
相关文章推荐
- 2_C# 实现VMS客户端——使用DotNetBar 10.9.0.4控件库
- 使用AutoIT实现自动登录/退出客户端软件,删除日志
- 使用C#的WebService实现客户端软件的更新
- C#Log4net日志记录组件的使用
- 8_C# 实现VMS客户端——窗体设计_自定义标题窗体
- 4_C# 实现VMS客户端——窗体架构设计
- C#2.0 webservice下使用log4net 写日志
- C#使用Log4Net记录日志
- 0_C# 实现VMS客户端——创建栏目初衷及目录
- C#使用Log4Net记录日志
- 7_C# 实现VMS客户端——窗体设计_无标题窗体设计
- 使用C#的WebService实现客户端软件的更新
- 使用C#的WebService实现客户端软件在线升级
- 使用C#的WebService实现客户端软件的在线升级功能(转)
- 1_C# 实现VMS客户端——调用C++ SDK
- Midapex网络开发库v2.2(更新主题:使用C#实现的FTP客户端)
- 使用Log4net 日志实现思路
- 6_C# 实现VMS客户端——代码架构设计
- c# .net 如何使用log4net记录日志
- 5_C# 实现VMS客户端——软件架构设计