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 3524: [Poi2014]Couriers [主席树]

    3524: [Poi2014]Couriers Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1892  Solved: 683[Submit][St ...

  2. 第3章 Linux常用命令(3)_文件搜索命令

    3. 文件搜索命令 3.1 文件搜索:find (1)find命令 命令名称 find 命令所在路径 /bin/find 执行权限 所有用户 语法 find [搜索范围] [-选项] [匹配条件] - ...

  3. [Unity3D]深度相机 Depth Camera

    作为3D世界里最重要的窗口,摄像机的应用就显得很重要,毕竟在屏幕上看到的一切都得用摄像机矩阵变换得来的嘛.论坛上看到了一篇帖子讲非天空盒的背景做法,让我想起其实很多界面合成画面可以用摄像机之间的交互来 ...

  4. 微信小程序之页面路由(九)

    [未经允许,请勿以任何形式转载] 什么是路由? 我们通常理解的路由指分组数据包从源到目的地时,决定端到端路径的网络范围的进程: 借用上面的定义,我们可以理解小程序页面路由,根据路由规则(路径)从一个页 ...

  5. viewport就是这回事

    前言 对于移动webapp开发人员来说,viewport是个很重要的东西,容易用但很多时候都是不明白的,于是我决心去弄清楚它. <meta name="viewport" c ...

  6. CSS编写技巧

    1.尽量少的使用全局的重置代码 全局重置代码:*{margin:0; padding:0;}对于熟悉CSS的人来说并不陌生,并且有很多人的第一句CSS代码就是这句.它可以避免不同浏览器的默认间距不同而 ...

  7. ajax 多个表单值问题,表单序列化加其它表单值

    $.ajax({ type: "post", url: "{:u('cart/totalByCard')}?t="+Math.random(9999), dat ...

  8. OpenCV图像细化的一个例子

    转自:http://blog.csdn.net/zfdxx369/article/details/9091953?utm_source=tuicool 本文是zhang的一篇经典图像细化论文,效果很好 ...

  9. BZOJ2818 Gcd

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  10. 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)

    ギリギリ eye Description A.D.1999,由坠落地球的“谜之战舰”带来的 Over Technology,揭示了人类历史和远古文明之间的丝丝联系, 促使人类终止彼此间的战争,一方面面 ...