加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

log4net用法

发布时间:2020-12-12 14:57:39 所属栏目:MsSql教程 来源:网络整理
导读:? 参考网上资料完成: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace DAL { ? public? class LogHelper ??? { ??????? //Log4net支持多种级别的日志。优先级从高到低依次排列如下:FATA
?

参考网上资料完成:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace DAL
{
? public? class LogHelper
??? {
??????? //Log4net支持多种级别的日志。优先级从高到低依次排列如下:FATAL > ERROR > WARN > INFO > DEBUG
????? //日志发送到文件显示
???????? public static readonly log4net.ILog logInfo = log4net.LogManager.GetLogger("logerror");
????? //日志发送到文件显示
????? public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("loginfo");
????? //日志发送到系统日志显示
????? public static readonly log4net.ILog logevent = log4net.LogManager.GetLogger("logevent");

????? //日志发送到SQLSERVER数据库
????? public static readonly log4net.ILog logSqlServer = log4net.LogManager.GetLogger("logSqlServer");
?????
????? public static void SetConfig()
????? {
???????? log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
????? }
????? public static void SetConfig(FileInfo configFile)
????? {
????????? log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
????? }


????? public static void WriteSqlServer(string info,Exception ex)
????? {
????????? if(logSqlServer.IsInfoEnabled)
????????? {
????????????? logSqlServer.Info(info,ex);
????????? }

????????? if (logSqlServer.IsErrorEnabled)
????????? {
????????????? logSqlServer.Error(info,ex);
????????? }

????????? if(logSqlServer.IsFatalEnabled)
????????? {
????????????? logSqlServer.Fatal(info,ex);
????????? }

????????? if(logSqlServer.IsWarnEnabled)
????????? {
????????????? logSqlServer.Warn(info,ex);
????????? }

????????? if(logSqlServer.IsDebugEnabled)
????????? {
????????????? logSqlServer.Debug(info,ex);
????????? }
????? }

}

global.asax配置:

<%@ Application Language="C#" %>

<script runat="server">

??? void Application_Start(object sender,EventArgs e)
??? {
??????? //在应用程序启动时运行的代码
??????? DAL.LogHelper.SetConfig();
??? }
???
??? void Application_End(object sender,EventArgs e)
??? {
??????? //在应用程序关闭时运行的代码

??? }
???????
??? void Application_Error(object sender,EventArgs e)
??? {
??????? //在出现未处理的错误时运行的代码
??????? Exception objExp = HttpContext.Current.Server.GetLastError();

??? }

??? void Session_Start(object sender,EventArgs e)
??? {
??????? //在新会话启动时运行的代码

??? }

??? void Session_End(object sender,EventArgs e)
??? {
??????? //在会话结束时运行的代码。
??????? // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
??????? // InProc 时,才会引发 Session_End 事件。如果会话模式
??????? //设置为 StateServer 或 SQLServer,则不会引发该事件。

??? }
??????
</script>

log4net.config信息

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<configSections>
??? <section name="log4net"? type="log4net.Config.Log4NetConfigurationSectionHandler" />
??? </configSections>
?
? <log4net>
??? <logger name="logerror">
????? <level value="ERROR" />
????? <appender-ref ref="ErrorAppender" />
??? </logger>
??? <logger name="loginfo">
????? <level value="INFO" />
????? <appender-ref ref="InfoAppender" />
??? </logger>
??? <logger name="logevent">
????? <level value="INFO" />
????? <appender-ref ref="EventLogAppender" />
??? </logger>
??? <logger name="logSqlServer">
????? <level name="INFO"></level>
????? <appender-ref ref="AdoNetAppender_SQL"></appender-ref>
??? </logger>
??? <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
????? <param name="File" value="d:Error" />
????? <param name="AppendToFile" value="true" />
????? <param name="MaxSizeRollBackups" value="100" />
????? <param name="MaxFileSize" value="10240" />
????? <param name="StaticLogFileName" value="false" />
????? <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
????? <param name="RollingStyle" value="Date" />
????? <layout type="log4net.Layout.PatternLayout">
??????? <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p
?? &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
??????? <param name="Header" value="************BEGIN************" />
??????? <param name="Footer" value="************END************" />
????? </layout>
??? </appender>
??? <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
????? <param name="File" value="d:Info" />
????? <param name="AppendToFile" value="true" />
????? <param name="MaxFileSize" value="10240" />
????? <param name="MaxSizeRollBackups" value="100" />
????? <param name="StaticLogFileName" value="false" />
????? <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
????? <param name="RollingStyle" value="Date" />
????? <layout type="log4net.Layout.PatternLayout">
??????? <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p
?? &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
??????? <param name="Header" value="************BEGIN************" />
??????? <param name="Footer" value="************END************" />
????? </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_SQL" type="log4net.Appender.ADONetAppender">
????? <bufferSize value="10000" />
????? <connectionType value="System.Data.SqlClient.SqlConnection,System.Data,Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" />
????? <connectionString value="DATABASE=MyDB;SERVER=.;UID=sa;PWD=1;Connect Timeout=15;" />
????? <commandText value="INSERT INTO ErrorLog ([dtDate],[sThread],[sLevel],[sLogger],[sMessage],[sException]) 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>
? </log4net>??
</configuration>

DAL里的AssemblyInfo.cs里加一句

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config",Watch = true)]?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读