.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="Log\LogDataList\\"/>
<!--file可以指定具体的路径 eg : d:\\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd/"log.log""/>
<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 =
}
}
.net错误日志记录(log4)的更多相关文章
- 将错误日志记录在txt文本里
引言 对于已经部署的系统一旦出错对于我们开发人员来说是比较痛苦的事情,因为我们不能跟踪到错误信息,不能 很快的定位到我们的错误位置在哪,这时候如果能像开发环境一样记录一些堆栈信息就可以了,这时候我们就 ...
- PHP错误日志记录:display_errors与log_errors的区别
我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题. 开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们. 生产 ...
- 日志记录~log4.net
1. 添加Log4net引用 2. 添加配置文件 Log.config <?xml version="1.0" encoding="utf-8"?> ...
- .Net Core中间件和过滤器实现错误日志记录
1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...
- 利用Image对象,建立Javascript前台错误日志记录
手记:摘自Javascript高级程序设计(第三版),利用Image对象发送请求,确实有很多优点,有时候这也许就是一个创意点,再次做个笔记供自己和大家参考. 原文: 开发 Web 应用程序过程中的一种 ...
- wpf 全局异常捕捉+错误日志记录+自动创建桌面图标
/// /// 创建桌面图标 /// public static void CreateShortcutOnDesktop(string LnkName) { String shortcutPath ...
- asp.net Web项目中使用Log4Net进行错误日志记录
使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能 ...
- PHP错误日志记录文件位置确定
1.确定web服务器 ( IIS, APACHE, NGINX 等) 以哪一种方式支持PHP,通常是有下面2种方式 通过模块加载的方式, 适用于apache 通过 CGI/fastCGI 模式, 该模 ...
- python错误日志记录工具,解决项目排错问题
我们写项目的时候难免会遇到代码报错的问题,遇到这样的问题了如何快速的定位问题并解决问题呢? 我今天来整理了利用python只带的工具来解决这个问题,我能需要使用的库有: logging os 这些都是 ...
随机推荐
- NOIP2009最优贸易[spfa变形|tarjan 缩点 DP]
题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...
- intel和AMD CPU性能对比(2016年CPU天梯图)组装电脑必读!
http://www.365pcbuy.com/article-411.html 特别提示:此文已经于2016年10月12日更新!内容变动较大,请细细品鉴! 如何为客户推荐高性价比机型是我站的重要工作 ...
- Linux系统1.md
计算机 介绍 电子计算机(英语:computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数据进行处理的工具. 在现代,机械计算机的应用已经完全被电子计算机所替换,其所相关的技术研究叫计算机 ...
- java线程跟多线程
java创建线程两种方式: 1.继承Thread创建线程 /** * Created by lsf on 16/4/18. */ class NewThread extends Thread { Ne ...
- PAT 1039. 到底买不买(20)
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- File API 读取文件小结
简单地说,File API只规定怎样从硬盘上提取文件,然后交给在网页中运行的JavaScript代码. 与以往文件上传不一样,File API不是为了向服务器提交文件设计的. 关于File API不能 ...
- p2p网贷平台设计简析
以我之前主持开发的一个商业产品:p2p网贷为例进行分析.整个的概况,可以参见:www.huixinp2p.com(目的只会技术交流) 界面可以直接参考前期博客:http://www.cnblogs.c ...
- ASP.NET MVC载入页面常用方法
@RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句: @Rend ...
- K - 迷宫问题
/*定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, ...
- jQuery之DOM属性
1. .addClass()方法:为每个匹配的元素添加指定的样式类名.值得注意的是设个方法不会替换一个样式类名.他只是简单的添加一个样式类名到元素上.对所有匹配的元素可以一次添加多个用空格隔开的样式类 ...