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. Centos6 服务器病毒查杀命令历史

    top whereis vhowazeclu ll /usr/bin/v* more /usr/bin/vhowazeclu ps aux|grep vhowa ps aux|grep vhowaze ...

  2. jquery.lazyload 实现图片延迟加载jquery插件

    看到了淘宝产品介绍中,图片是在下拉滚动条时加载,这是一个很不错的用户体验.减少了页面加载的时间了,也减轻了服务器的压力,就查了下用JQuery..   什么是ImageLazyLoad技术 在页面上图 ...

  3. jQuery如何在IE中更改网页标题

    标准上来说,要改变title值要操作document而不是title节点.在IE下不能通过操作title节点来改变document.title. 本来用原生的JavaScript很简单就解决了: do ...

  4. 用C#实现封装

    用C#实现封装 1.属性对外公开类似于类的接口实现对字段的访问;2.字段为private只能在内部被直接访问,如果当属性为只读,那么可以将形参直接对字段赋值.(有没有更好的方法?);3.可以通过关键字 ...

  5. IT行业的技术类岗位分为许多种,如何判断自己适合哪种?

    A.硬件工程师B.软件工程师C.UI设计师D.仿真工程师E.ERP工程师F.集成工程师G.系统架构设计师H.数据库工程师I.网络管理员J.网络安全工程师K.网站架构设计师L.网页设计M.Flash设计 ...

  6. 备忘:mybatis 3的使用记录

    这是一篇记录.mybatis是一个部分模仿ORM的framework.是一个介于ORM和原始JDBC的框架.既可以提供ORM的操作对象的特性,又能从详细地控制最终的SQL.达到一个平衡.我们还是得写s ...

  7. 标准C++之运算符重载和虚表指针

    1 -> *运算符重载 //autoptr.cpp     #include<iostream> #include<string> using namespace std ...

  8. java--HashMap多线程并发问题分析

    并发问题的症状 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题.后来,我们的程序性能有问题,所以需要变成多 ...

  9. <<< Oracle表空间创建、修改、删除基本操作

    ORACLE 中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象 create tablespace myts  //建立表空间,名为mytsd ...

  10. PHP WAMP 文件上传 及 简单的上传预览

    ...... 使用特殊的表单类型file, 主(上传)页面: <form action="chuli.php" method="post" enctype ...