Log4Net的应用教程之保存日志到数据库中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Log4Net的应用教程之保存日志到数据库中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6191字,纯文字阅读大概需要9分钟。
内容图文
01 我们先添加一个简单的asp.net web项目 我们再添加一个common的类库,这个类库是一些公共的工具类 在添加一个Business的类库,这个类库主要是业务逻辑层的,我这里主要是为了测试在系统任何地方都能调用数据库,所以才创建这些类库 创建后的项目如下: 02 引入log4net.dll的引用,可以在下方的源码中找到,我们在common中引入这个dll 03 我们创建一个数据库,这里面你可以使用你已经创建好的数据库,我这里创建一个名Log4NetDB的数据库 添加,一张数据表Log,sql代码如下if exists (select 1 from sysobjects where id = object_id(‘Log‘) and type = ‘U‘) drop table Log go /*==============================================================*/ /* Table: Log */ /*==============================================================*/ create table Log ( Id bigint identity, AddTime datetime not null, Thread nvarchar(100) not null, Level nvarchar(200) not null, Logger nvarchar(500) not null, Message nvarchar(3000) not null, Exception nvarchar(4000) null, constraint PK_LOG primary key (Id) ) go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘Log4net日志表‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘ go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘日志主键‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘, ‘column‘, ‘Id‘ go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘添加时间‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘, ‘column‘, ‘AddTime‘ go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘所在线程‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘, ‘column‘, ‘Thread‘ go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘级别‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘, ‘column‘, ‘Level‘ go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘拥有者‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘, ‘column‘, ‘Logger‘ go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘日志信息‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘, ‘column‘, ‘Message‘ go declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_addextendedproperty ‘MS_Description‘, ‘异常信息‘, ‘user‘, @CurrentUser, ‘table‘, ‘Log‘, ‘column‘, ‘Exception‘ go
04 在log4netdemo主项目根目录添加一个Log4net.config的配置文件
<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <bufferSize value="1" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <!--数据库连接字符串--> <connectionString value="DATABASE=Log4NetDB;SERVER=.;UID=sa;PWD=pwdpwd;Connect Timeout=15;" /> <commandText value="INSERT INTO Log ([AddTime],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="100" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%t" /> </layout> </parameter> <parameter> <parameterName value="@log_level" /> <dbType value="String" /> <size value="200" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%p" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="500" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger" /> </layout> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="3000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%m" /> </layout> </parameter> <parameter> <parameterName value="@exception" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.ExceptionLayout" /> </parameter> </appender> <root> <level value="WARN"/> <level value="INFO"/> <level value="DEBUG"/> <level value="FINE"/> <appender-ref ref="ADONetAppender" /> </root> <logger name="iNotes"> <level value="WARN"/> <level value="INFO"/> <level value="DEBUG"/> <level value="FINE"/> <appender-ref ref="ADONetAppender"/> </logger> <logger name="StellaLogger"> <level value="ALL"/> <appender-ref ref="AdoNetAppender" /> </logger> </log4net> </configuration>
05 在主项目中的AssemblyInfo.cs 添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
06 使用的时候,需要先实例化日志对象 比如在page里面
private static log4net.ILog logHelper = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); protected void Page_Load(object sender, EventArgs e) { //项目中调用使用日志 logHelper.Info("hehe"); }
在common里面
private static log4net.ILog logHelper = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static void ComHelperDo() { int i = 0; try { int b = 3 / i; } catch (Exception ex) { logHelper.Error("发现异常", ex); } }在business里
private static log4net.ILog logHelper = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static void BusHelperDo() { logHelper.Error("错误信息"); }
最后数据库里就添加成功了
需要用到日志的项目就需要引入log4net的dll 用起来也挺方便的 源码下载:http://pan.baidu.com/s/1hqrPhVu 博客园附件下载:http://files.cnblogs.com/files/maijin/Log4NetDemo.rar 感谢你的阅读,希望对你有帮助,欢迎关注作者的个人主页 www.bamn.cn 希望博客园允许打一点点广告....
Log4Net的应用教程之保存日志到数据库中
标签:
本文系统来源:http://www.cnblogs.com/maijin/p/4618435.html
内容总结
以上是互联网集市为您收集整理的Log4Net的应用教程之保存日志到数据库中全部内容,希望文章能够帮你解决Log4Net的应用教程之保存日志到数据库中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。