`
iwebcode
  • 浏览: 2071524 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

利用Log4net记录系统日志信息(支持6种数据库)

 
阅读更多

Log4net的优点:

几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。

经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;一旦在程序中加入了Log输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用。

代码下载(支持6种数据库)

效果预览:

下面举例说明利用Log4net控件 将日志信息保存到数据库

一:下载log4net.dll
将log4net.dll拷贝到bin下面,并添加对它的引用

二:在数据库里面创建表Log
create table LOG
(
LOGDATE VARCHAR2(20),
LOG_LEVEL VARCHAR2(255),
LOGGER VARCHAR2(255),
MESSAGE VARCHAR2(2000),
EXCEPTION VARCHAR2(2000)
)
三:配置Web.config
注意2个地方:
1:在configSections加入相关代码
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

2:log4net里面对数据库连接进行配置

<log4net debug="true">

<!--
定义loger的名称和使用的appender
CREATE TABLE `sys_log` (
`LogDate` datetime DEFAULT NULL,
`Level` varchar(255) DEFAULT NULL,
`Logger` varchar(255) DEFAULT NULL,
`Message` varchar(4000) DEFAULT NULL,
`Exception` varchar(2000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
-->
<logger name="AA" >
<level value="ALL"/>
<appender-ref ref="ADONetAppender"/>
</logger>

<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
<!--
定义几条存入数据库 有2条时才写入数据库,没有两条叫缓存
-->
<bufferSize value="100"/>
<param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"/>


<connectionString value="server=server;database=postbankv6;uid=root;pwd=888888;charset=gb2312;"/>

<commandText value="INSERT INTO sys_log (LogDate,Level,Logger,Message,Exception) VALUES (@log_date, @log_level,@logger, @message, @exception)"/>

<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>

</parameter>
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="255"/>
<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="%C[%M(%L)]"/>
</layout>
</parameter>
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m"/>
</layout>
</parameter>
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="2000"/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>

</appender>

</log4net>


四:程序调用
1:创建一个辅助类:SystemLog.cs

public class SystemLog
{
private SystemLog()
{

}

public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("AA"); //选择<logger name="loginfo">的配置

public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("AA"); //选择<logger name="logerror">的配置

public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}

public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
}

public static void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
}

public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}

}


2: 创建Global.asax,里面设置相关代码
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
SystemLog.SetConfig();
}


3:在页面中调用:

strMsg += FormService.UserID + "修改了车辆信息:车辆ID为为:" + model.ID;
SystemLog.loginfo.Info(strMsg);


注意:
读取WebConfg问题,网上都建议在globe.ascx里面:
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
PDAManage.SystemLog.SetConfig();
}


但我发现当第二次访问该页面的时候,不能成功将日志保存到数据库,以下是我的解决方案:
1:所有页面继承basePage
2:在BasePage里面加上:

protected override void OnLoad(EventArgs e)
{
if (!base.IsPostBack)
{
SystemLog.SetConfig();

}

}

代码下载(支持6种数据库)

效果预览:

分享到:
评论

相关推荐

    C# 利用log4net 把日志写入到数据库

    在本篇内容中,我们将深入探讨如何利用开源日志框架log4net将应用程序的日志信息记录到数据库中。 **一、log4net简介** log4net是一款广泛使用的、高度可配置的日志框架,它为.NET开发者提供了一套灵活的日志记录...

    net6 控制台+ log4net+写数据库+自定义字段

    通过以上步骤,你就可以在.NET 6控制台应用中利用log4net进行日志记录,并将包含自定义字段的日志数据写入数据库。这样的实现不仅方便了日后的查询和分析,还增强了系统的可维护性和稳定性。记得在实际应用中根据...

    log4net 数据库日志

    **标题:“log4net 数据库日志”** ...通过理解和应用这些知识点,开发者可以利用log4net有效地管理和分析应用程序的运行日志,特别是在大型分布式系统中,数据库日志存储能提供更强大的查询和分析能力。

    使用log4j 记录日志到数据库

    这篇博客“使用log4j记录日志到数据库”将介绍如何配置和使用Log4j,以便将日志信息存储到数据库中,而非传统的文本文件。数据库存储的日志便于进行结构化查询,有助于进行长期的数据分析和管理。 首先,理解Log4j...

    log4net自动删除日志文件实现

    一种常见的方法是利用log4net的RollingFileAppender,这个Appender会在日志文件达到指定大小或日期时创建新的日志文件。结合文件系统操作,可以定期检查并删除超过保留期限的日志文件。 **3. RollingFileAppender...

    log4net写入数据库

    本文将深入探讨如何利用log4net将日志信息写入数据库,以及在B/S(浏览器/服务器)和C/S(客户端/服务器)架构下的具体实现方式。 首先,log4net的基本概念是不可忽视的。它是Apache Software Foundation开源的 ...

    Log4net自定义信息(变量或属性或字段)存入数据库

    本主题聚焦于如何利用Log4net将自定义信息,如变量、属性或字段,存储到数据库中,这对于监控应用状态、分析错误和追踪性能异常至关重要。 首先,Log4net提供了一个灵活的配置机制,允许开发者通过XML配置文件或...

    如何借助log4j把日志写入数据库中

    本文将深入讲解如何利用Log4j将日志信息存储到数据库中。 首先,我们需要理解Log4j的基本架构。Log4j由三个主要组件构成:Logger(日志器)、Appender(输出端)和Layout(格式化器)。Logger负责生成日志事件,...

    用log4net向oracle写入数据

    本文详细介绍了如何利用Log4Net将日志信息写入Oracle数据库的方法,包括了创建Oracle表、配置Log4Net以及编写代码等关键步骤。通过这种方式,可以更高效地管理和分析系统产生的日志信息,为后续的问题定位和性能优化...

    log4net记录日志

    综上所述,"log4net记录日志"是一个关于如何在winform应用中利用log4net框架进行日志管理和追踪的重要实践,对于提升软件的可维护性和稳定性具有显著价值。通过学习和应用log4net,开发者可以更好地监控和管理他们的...

    log4net普通文件、数据库等日志存储

    在.NET框架中,`log4net`是一个广泛应用的日志记录库,它提供了丰富的配置选项,支持将日志信息输出到多种目标,包括普通文件、数据库等。本文将深入探讨`log4net`如何实现普通文件和数据库的日志存储,并提供一些...

    log4j输出日志到数据库表中

    **标题解析:** "log4j输出日志到数据库表中" 指的是使用Log4j这个流行的Java日志框架,将日志记录存储在数据库的特定表中,而不是默认的文本文件或控制台。这通常是出于日志管理、分析和长期存储的需求。 **描述...

    wpf log4net richtextbox

    我们将利用RichTextBox控件来展示实时的日志信息,同时通过log4net将日志数据写入本地文件。这种结合方式既方便了调试,也为用户提供了一个友好的日志查看界面。 首先,我们要了解WPF。WPF是.NET Framework的一部分...

    log4j日志写入数据库实例

    总之,Log4j将日志写入数据库的功能为系统监控和问题排查提供了强大的支持。通过合理的配置和管理,我们可以有效地利用这些日志数据,提升系统的可维护性和稳定性。在压缩包中的`log4j`文件可能包含了进一步的配置...

    数据库访问类,支持sql和oracle,并同时支持log4net日志记录功能~

    在这个项目中,我们看到一个数据库访问类,它不仅支持SQL Server和Oracle这两种广泛使用的数据库系统,还集成了log4net日志框架,以实现详细的日志记录功能。这样的设计使得开发者在调试和维护时能够更好地追踪和...

    log4net1.2.11.dll 和 log4net1.2.11源码

    本文将深入探讨log4net1.2.11.dll与log4net1.2.11的源码,这是一个强大的日志记录框架,它为.NET开发者提供了一种灵活且可扩展的方式来管理和跟踪应用程序的运行时信息。log4net是Apache软件基金会的log4j项目在.NET...

    C#Log4net操作记录错误

    本文将深入探讨如何在C#项目中利用Log4net来有效地记录和管理错误。 Log4net是Apache软件基金会开发的一个开源日志记录框架,它广泛应用于Java和.NET平台。Log4net提供了一种灵活的方式来控制程序中的日志输出,...

    Log4Net日志控件

    这意味着开发者可以利用这个库方便地记录系统运行过程中的各种信息,便于诊断问题、追踪错误和监控性能。 使用Log4Net时,首先需要在应用程序中引用"CollierySys.Common.Logging.Log4Net.dll",然后创建并配置...

    log4net 日志类

    log4net支持多种日志级别,包括DEBUG、INFO、WARN、ERROR、FATAL以及ALL和OFF。这些级别允许开发者精确控制日志信息的生成,例如,在调试阶段启用DEBUG级别,发布时则切换到INFO级别,只记录重要的信息。 2. **...

    Log4Net .net3.5版本

    2. **多种日志输出选项**:Log4Net支持将日志信息输出到控制台、文件、数据库、SMTP邮件、Windows事件日志等多种目的地。 3. **日志级别**:包括DEBUG、INFO、WARN、ERROR、FATAL等,可以根据需要设置不同的日志...

Global site tag (gtag.js) - Google Analytics