zoukankan      html  css  js  c++  java
  • .net错误日志记录(log4)

    Log4

    web.config

    <!--这段放前面-->
    <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
      </configSections>
    
    
    <log4net debug="true">
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          <file value="LogLogDataList\"/>
          <!--file可以指定具体的路径 eg : d:\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->
          <appendToFile value="true"/>
          <rollingStyle value="Date"/>
          <datePattern value="yyyy-MM-dd/&quot;log.log&quot;"/>
          <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock"/>
          <maxSizeRollBackups value="1000"/>
          <!--备份log文件的个数最多10个-->
          <maximumFileSize value="5MB"/>
          <!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->
          <staticLogFileName value="false"/>
          <layout type="log4net.Layout.PatternLayout">
            <!--指定log的格式  [%M] 方法名称   -->
            <conversionPattern value="-----------------------------------------------------------------------------%newline[日期:%d] %newline  日志级别:%-5level,   发生在类:%c[%M] 、%L行,%newline  描述:%m  %newline"/>
          </layout>
        </appender>
        <root>
          <!--<level value="DUBEG" />-->
          <!--指定将此级别及以上的log打印到log文件中-->
          <appender-ref ref="RollingLogFileAppender"/>
        </root>
      </log4net>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string CurrIP = "";
                try
                {
    
                    CurrIP = System.Web.HttpContext.Current.Request.UserHostAddress;
                    int i = int.Parse("tt");
                }
                catch (Exception ex)
                {
                    //写入日志
                    string msg = "消费发生异常请及时处理【BAL.PayConsume】:
     strNumber:
      strNumber:
     goodsNumber:结果rsult:
     ip:" + CurrIP + "
     时间:" + DateTime.Now.ToString("yyyyMMdd-hhmmss");
                    dalcomd.wLog(LogLevel.Error, msg, ex);
                }
                finally
                {
                    //写入日志
                    string msg = "消费记录【BAL.PayConsume】:
     strNumber:
      strNumber:
     goodsNumber:结果rsult:
     ip:" + CurrIP + "
     时间:" + DateTime.Now.ToString("yyyyMMdd-hhmmss");
                    dalcomd.wLog(LogLevel.Info, msg);
                }
            }
        }
    }
    using System;
    using System.Data;
    using System.Text;
    using log4net;
    using System.IO;
    
    
    [assembly: log4net.Config.XmlConfigurator(Watch = true)]
    namespace WebApplication1
    {
        public static class dalcomd
        {
    
            /// <summary>
            /// 日志类
            /// </summary>
            private static ILog log
            {
                get
                {
                    Type declaringType = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType;
                    ILog log = log4net.LogManager.GetLogger(declaringType);
                    return log;
                }
            }
    
    
            /// <summary>
            /// 写入运行日志
            /// </summary>
            /// <param name="Errorlevel">日志级别</param>
            /// <param name="ErrorMsg">错误描述</param>
            /// <param name="ex">异常</param>
            /// <param name="age">参数列表</param>
            public static void wLog(LogLevel Errorlevel, string ErrorMsg, params string[] age)
            {
                wLog(Errorlevel, ErrorMsg, new Exception(), age);
            }
    
            /// <summary>
            /// 写入运行日志
            /// </summary>
            /// <param name="Errorlevel">日志级别</param>
            /// <param name="ErrorMsg">错误描述</param>
            /// <param name="ex">异常</param>
            /// <param name="age">参数列表</param>
            public static void wLog(LogLevel Errorlevel, string ErrorMsg)
            {
                wLog(Errorlevel, ErrorMsg, new Exception());
            }
    
    
            /// <summary>
            /// 写入运行日志
            /// </summary>
            /// <param name="Errorlevel">日志级别</param>
            /// <param name="ErrorMsg">错误描述</param>
            /// <param name="ex">异常</param>
            public static void wLog(LogLevel Errorlevel, string ErrorMsg, Exception ex)
            {
                ILog log = dalcomd.log;
                switch (Errorlevel)
                {
                    case LogLevel.Debug: log.Debug(ErrorMsg, ex); break;
                    case LogLevel.Info: log.Info(ErrorMsg, ex); break;
                    case LogLevel.Warn: log.Warn(ErrorMsg, ex); break;
                    case LogLevel.Error: log.Error(ErrorMsg, ex); break;
                    case LogLevel.Fatal: log.Fatal(ErrorMsg, ex); break;
                }
            }
    
    
            /// <summary>
            /// 写入运行日志
            /// </summary>
            /// <param name="Errorlevel">日志级别</param>
            /// <param name="ErrorMsg">错误描述</param>
            /// <param name="ex">异常</param>
            /// <param name="age">参数列表</param>
            public static void wLog(LogLevel Errorlevel, string ErrorMsg, Exception ex, params string[] age)
            {
                ILog log = dalcomd.log;
                StringBuilder SBParams = new StringBuilder();
                foreach (string str in age)
                {
                    SBParams.Append(str + ",");
                }
                ErrorMsg = ErrorMsg + "
    {参数:[" + SBParams.ToString() + "]}";
                switch (Errorlevel)
                {
                    case LogLevel.Debug: log.Debug(ErrorMsg, ex); break;
                    case LogLevel.Info: log.Info(ErrorMsg, ex); break;
                    case LogLevel.Warn: log.Warn(ErrorMsg, ex); break;
                    case LogLevel.Error: log.Error(ErrorMsg, ex); break;
                    case LogLevel.Fatal: log.Fatal(ErrorMsg, ex); break;
                }
            }
    
    
            /// <summary>
            /// 自定义方法写入日志
            /// </summary>
            /// <param name="FilePath">路径</param>
            /// <param name="FileName">文件名</param>
            /// <param name="content">内容</param>
            public static void LogResult(string FilePath, string FileName, string content)
            {
                try
                {
                    //目录
                    string strFilePath = FilePath + "//" + DateTime.Now.ToString("yyyyMMdd");
                    //完整文件地址
                    string AllFilePath = strFilePath + "//" + FileName;
                    if (!Directory.Exists(strFilePath))
                    {
                        Directory.CreateDirectory(strFilePath);
                    }
    
                    StreamWriter write = new StreamWriter(AllFilePath, true, System.Text.Encoding.UTF8);
                    write.Write(content);
                    write.WriteLine();
                    write.Close();
                    write.Dispose();
                }
                catch (Exception ex)
                {
                    string msg = FilePath + "------" + FileName + "-----" + content;
                    wLog(LogLevel.Error, "自定义日志方写入异常:" + msg, ex);
                }
            }
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WebApplication1
    {
        /// <summary>
        ///  LOG日志记录等级枚举
        /// </summary>
        public enum LogLevel
        {
            /// <summary>
            /// Debug信息记录 调试信息
            /// </summary>
            Debug = 0,
    
            /// <summary>
            /// Info信息记录 记录信息
            /// </summary>
            Info = 1,
    
            /// <summary>
            /// Warn信息记录 警告信息
            /// </summary>
            Warn = 2,
    
            /// <summary>
            /// Error信息记录 普通错误
            /// </summary>
            Error = 3,
    
            /// <summary>
            /// Fatal信息记录 致命错误
            /// </summary>
            Fatal = 4
        }
    }

    DownLoad .dll File

  • 相关阅读:
    【pywin32总结】
    python 操作 office
    Python操作Word【批量生成文章】
    该怎样用几何画板绘制正五边形呢
    安装ChemOffice 15.1就是这么简单
    MathType编辑钢筋符号就是这么简单
    该如何将MathType公式粘贴到文档中
    修改Chem 3D模型的化学键属性的方法有哪些
    几何画板做圆柱的方法有哪些
    用几何画板如何实现抛物线左右平移
  • 原文地址:https://www.cnblogs.com/elves/p/3862830.html
Copyright © 2011-2022 走看看