Log4

web.config

<!--这段放前面-->
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections> <log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Log\LogDataList\\"/>
<!--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】:\n strNumber:\n strNumber:\n goodsNumber:结果rsult:\n ip:" + CurrIP + "\n 时间:" + DateTime.Now.ToString("yyyyMMdd-hhmmss");
dalcomd.wLog(LogLevel.Error, msg, ex);
}
finally
{
//写入日志
string msg = "消费记录【BAL.PayConsume】:\n strNumber:\n strNumber:\n goodsNumber:结果rsult:\n ip:" + CurrIP + "\n 时间:" + 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 + "\n{参数:[" + 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 = , /// <summary>
/// Info信息记录 记录信息
/// </summary>
Info = , /// <summary>
/// Warn信息记录 警告信息
/// </summary>
Warn = , /// <summary>
/// Error信息记录 普通错误
/// </summary>
Error = , /// <summary>
/// Fatal信息记录 致命错误
/// </summary>
Fatal =
}
}

DownLoad .dll File

.net错误日志记录(log4)的更多相关文章

  1. 将错误日志记录在txt文本里

    引言 对于已经部署的系统一旦出错对于我们开发人员来说是比较痛苦的事情,因为我们不能跟踪到错误信息,不能 很快的定位到我们的错误位置在哪,这时候如果能像开发环境一样记录一些堆栈信息就可以了,这时候我们就 ...

  2. PHP错误日志记录:display_errors与log_errors的区别

    我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题. 开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们. 生产 ...

  3. 日志记录~log4.net

    1. 添加Log4net引用 2. 添加配置文件 Log.config <?xml version="1.0" encoding="utf-8"?> ...

  4. .Net Core中间件和过滤器实现错误日志记录

    1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...

  5. 利用Image对象,建立Javascript前台错误日志记录

    手记:摘自Javascript高级程序设计(第三版),利用Image对象发送请求,确实有很多优点,有时候这也许就是一个创意点,再次做个笔记供自己和大家参考. 原文: 开发 Web 应用程序过程中的一种 ...

  6. wpf 全局异常捕捉+错误日志记录+自动创建桌面图标

    /// /// 创建桌面图标 /// public static void CreateShortcutOnDesktop(string LnkName) { String shortcutPath ...

  7. asp.net Web项目中使用Log4Net进行错误日志记录

      使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能 ...

  8. PHP错误日志记录文件位置确定

    1.确定web服务器 ( IIS, APACHE, NGINX 等) 以哪一种方式支持PHP,通常是有下面2种方式 通过模块加载的方式, 适用于apache 通过 CGI/fastCGI 模式, 该模 ...

  9. python错误日志记录工具,解决项目排错问题

    我们写项目的时候难免会遇到代码报错的问题,遇到这样的问题了如何快速的定位问题并解决问题呢? 我今天来整理了利用python只带的工具来解决这个问题,我能需要使用的库有: logging os 这些都是 ...

随机推荐

  1. BZOJ 2243: [SDOI2011]染色 [树链剖分]

    2243: [SDOI2011]染色 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 6651  Solved: 2432[Submit][Status ...

  2. Struts2 JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 (本质是一种数据传输格式) 定义json对象 var json={"firstName" ...

  3. alexkn android第一行代码-7.广播

    0.Android 中的广播主要可以分为两种类型,标准广播和有序广播.标准广播(Normal broadcasts)是一种完全异步执行的广播,在广播发出之后,所有的 广播接收器几乎都会在同一时刻接收到 ...

  4. PAT 1038. 统计同成绩学生(20)

    本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查 ...

  5. Specific sleep staging features in EEG

    Source: MedScape Overview NREM and REM occur in alternating cycles, each lasting approximately 90-10 ...

  6. DataGridView列的宽度、行的高度自动调整

    注意:DataGridView控件是从.NET Framework 2.0版本开始追加的. 介绍一下DataGridView列的宽度和行的高度,根据单元格或Header的内容(一般是内容全部被表示)自 ...

  7. javascript正则表达式:匹配所有html标签

    此正则表达式收集于网络,但那个网站连复制一下都需要注册会员,鄙视之,所以不提他了.而且,原作者也不可能是那个网站. html标签有<h1></h1>这种成对的,也有<br ...

  8. linux 代码分析工具 gprof - 以wpa_supplicant为例

        当我们遇到一个新的程序的时候,经常会无从下手,需要debug一个功能的时候,我们不知道函数的运行流程是怎么样的,这就需要借助工具来帮助我们加快流程了.这里以分析wpa_supplicant为例 ...

  9. CSS基本知识6-CSS字体

    首先要考虑的是文本的排版,实际上有这玩意,Word还需要吗?不需要了.我们列下文本所涉及的操作: CSS 文本属性 属性 描述 color 设置文本颜色 direction 设置文本方向. line- ...

  10. Microsoft.VisualStudio.TestTools.UnitTesting 命名空间

      类 说明 AfterAssemblyCleanupEventArgs 为 AfterAssemblyCleanup 事件提供数据. AfterAssemblyInitializeEventArgs ...