asp.net 的log4net的helper类
using log4net;
using System;
using System.Diagnostics; namespace MxWeiXinPF.Common.log
{
public static class LogHelper
{
// private static LogMessage message = null; #region error 错误、异常时候记录日志 /// <summary>
/// 错误、异常时候记录日志
/// </summary>
/// <param name="message"></param>
public static void Error(object message)
{
LogManager.GetLogger(GetCurrentMethodFullName()).Error(message);
} /// <summary>
/// 错误、异常 记录日志
/// </summary>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Error(object message, Exception exception)
{
LogManager.GetLogger(GetCurrentMethodFullName()).Error(message, exception);
} /// <summary>
/// 错误、异常 记录日志
/// </summary>
/// <param name="message">记录内容</param>
/// <param name="userid">userid</param>
/// <param name="platName">平台</param>
/// <param name="module">模块</param>
/// <param name="operating">操作行为</param>
/// <param name="flgValue">值</param>
/// <param name="addip">ip</param>
public static void Error(string message, int userid = , string platName = "", string module = "", string operating = "", string flgValue = "")
{
LogMessage lm = new LogMessage(); lm.userid = userid;
lm.platName = platName;
lm.module = module;
lm.operating = operating;
lm.flgValue = flgValue;
lm.addip = Utils.getIPAddress();
lm.remark = message;
LogManager.GetLogger(GetCurrentMethodFullName()).Error(lm);
} /// <summary>
/// 错误、异常 记录日志
/// </summary>
/// <param name="message">记录内容</param>
/// <param name="userid">userid</param>
/// <param name="platName">平台</param>
/// <param name="module">模块</param>
/// <param name="operating">操作行为</param>
/// <param name="flgValue">值</param>
/// <param name="addip">ip</param>
public static void Error(string message, Exception exception, int userid = , string platName = "", string module = "", string operating = "", string flgValue = "")
{
LogMessage lm = new LogMessage(); lm.userid = userid;
lm.platName = platName;
lm.module = module;
lm.operating = operating;
lm.flgValue = flgValue;
lm.addip = Utils.getIPAddress();
lm.remark = message;
LogManager.GetLogger(GetCurrentMethodFullName()).Error(lm, exception);
} #endregion #region info 请求,用户行为 记录日志 /// <summary>
/// 请求,用户行为 记录日志
/// </summary>
/// <param name="message"></param>
public static void Info(object message)
{
LogManager.GetLogger(GetCurrentMethodFullName()).Info(message);
} /// <summary>
/// 请求,用户行为 记录日志
/// </summary>
/// <param name="message"></param>
/// <param name="ex"></param>
public static void Info(object message, Exception ex)
{
LogManager.GetLogger(GetCurrentMethodFullName()).Info(message, ex);
} /// <summary>
/// 请求,用户行为 记录日志
/// </summary>
/// <param name="message">记录内容</param>
/// <param name="userid">userid</param>
/// <param name="platName">平台</param>
/// <param name="module">模块</param>
/// <param name="operating">操作行为</param>
/// <param name="flgValue">值</param>
/// <param name="addip">ip</param>
public static void Info(string message, int userid = , string platName = "", string module = "", string operating = "", string flgValue = "")
{
LogMessage lm = new LogMessage(); lm.userid = userid;
lm.platName = platName;
lm.module = module;
lm.operating = operating;
lm.flgValue = flgValue;
lm.addip = Utils.getIPAddress();
lm.remark = message; LogManager.GetLogger(GetCurrentMethodFullName()).Info(lm);
} /// <summary>
/// 请求,用户行为 记录日志
/// </summary>
/// <param name="message">记录内容</param>
/// <param name="ex">异常</param>
/// <param name="userid">userid</param>
/// <param name="platName">平台</param>
/// <param name="module">模块</param>
/// <param name="operating">操作行为</param>
/// <param name="flgValue">值</param>
/// <param name="addip">ip</param>
public static void Info(string message, Exception ex, int userid = , string platName = "", string module = "", string operating = "", string flgValue = "")
{
LogMessage lm = new LogMessage(); lm.userid = userid;
lm.platName = platName;
lm.module = module;
lm.operating = operating;
lm.flgValue = flgValue;
lm.addip = Utils.getIPAddress();
lm.remark = message;
LogManager.GetLogger(GetCurrentMethodFullName()).Info(lm, ex);
} #endregion #region debug 调试记录日志 /// <summary>
/// 调试记录日志
/// </summary>
/// <param name="message"></param>
public static void Debug(object message)
{ LogManager.GetLogger(GetCurrentMethodFullName()).Debug(message); } /// <summary>
/// 调试记录日志
/// </summary>
/// <param name="message"></param>
/// <param name="ex"></param>
public static void Debug(object message, Exception ex)
{ LogManager.GetLogger(GetCurrentMethodFullName()).Debug(message, ex); } /// <summary>
/// 调试记录日志
/// </summary>
/// <param name="message">记录内容</param>
/// <param name="userid">userid</param>
/// <param name="platName">平台</param>
/// <param name="module">模块</param>
/// <param name="operating">操作行为</param>
/// <param name="flgValue">值</param>
/// <param name="addip">ip</param>
public static void Debug(string message, int userid = , string platName = "", string module = "", string operating = "", string flgValue = "")
{ LogMessage lm = new LogMessage(); lm.userid = userid;
lm.platName = platName;
lm.module = module;
lm.operating = operating;
lm.flgValue = flgValue;
lm.addip = Utils.getIPAddress();
lm.remark = message;
LogManager.GetLogger(GetCurrentMethodFullName()).Debug(lm); } #endregion #region warin 警告 public static void Warn(object message)
{
LogManager.GetLogger(GetCurrentMethodFullName()).Warn(message);
} public static void Warn(object message, Exception ex)
{
LogManager.GetLogger(GetCurrentMethodFullName()).Warn(message, ex);
} /// <summary>
/// 错误、异常 记录日志
/// </summary>
/// <param name="userid">userid</param>
/// <param name="platName">平台</param>
/// <param name="module">模块</param>
/// <param name="operating">操作行为</param>
/// <param name="flgValue">值</param>
/// <param name="addip">ip</param>
/// <param name="message">记录内容</param>
public static void Warn(string message, int userid = , string platName = "", string module = "", string operating = "", string flgValue = "")
{
LogMessage lm = new LogMessage(); lm.userid = userid;
lm.platName = platName;
lm.module = module;
lm.operating = operating;
lm.flgValue = flgValue;
lm.addip = Utils.getIPAddress();
lm.remark = message;
LogManager.GetLogger(GetCurrentMethodFullName()).Warn(lm);
} /// <summary>
/// 错误、异常 记录日志
/// </summary>
/// <param name="message">记录内容</param>
/// <param name="userid">userid</param>
/// <param name="platName">平台</param>
/// <param name="module">模块</param>
/// <param name="operating">操作行为</param>
/// <param name="flgValue">值</param>
/// <param name="addip">ip</param>
public static void Warn(string message, Exception exception, int userid = , string platName = "", string module = "", string operating = "", string flgValue = "")
{
LogMessage lm = new LogMessage();
lm.userid = userid;
lm.platName = platName;
lm.module = module;
lm.operating = operating;
lm.flgValue = flgValue;
lm.addip = Utils.getIPAddress();
lm.remark = message;
LogManager.GetLogger(GetCurrentMethodFullName()).Warn(lm, exception);
} #endregion private static string GetCurrentMethodFullName()
{
StackFrame frame;
string MethodFunStr = "";
string MethodFullNameStr = "";
// bool flag;
try
{
int num = ;
StackTrace stackTrace = new StackTrace();
int length = stackTrace.GetFrames().Length;
//do
//{
int num1 = num;
// num = num1 + 1;
frame = stackTrace.GetFrame(num1);
MethodFunStr = frame.GetMethod().DeclaringType.ToString();
// flag = (!MethodFunStr.EndsWith("Exception") ? false : num < length);
//}
//while (flag);
string name = frame.GetMethod().Name;
MethodFullNameStr = string.Concat(MethodFunStr, ".", name);
}
catch (Exception ex)
{
string exMessage = ex.Message;
MethodFullNameStr = exMessage.Substring(, exMessage.Length > ? : exMessage.Length); LogManager.GetLogger("内部调试").Error("GetCurrentMethodFullName()方法报错啦!!!", ex);
}
return MethodFullNameStr; // return "TestName";
}
}
}
log4net.config文件
<?xml version="1.0" encoding="utf-8"?>
<configuration> <configSections>
<section name="log4net" type="log4net.Config.log4NetConfigurationSectionHandler,log4net" />
</configSections> <log4net>
<!--数据库记录--> <!--错误日志-->
<appender name="ADONetAppenderMySqlClient" type="log4net.Appender.ADONetAppender">
<bufferSize value="" />
<param name="ReconnectOnError" value="true"/>
<connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
<connectionString value="server=10.1.0.228;user id=lijun;pwd=520777;port=3306;pooling=True;database=hurongclub_log;charset=utf8;" providerName="MySql.Data.MySqlClient;" />
<commandText value="INSERT INTO loginfo (ID,CreateTime,Thread,Level,Logger,Message,Exception,UserID,PlatName,Module,Operation,DeviceID,HRVersion,CustomerID,RequestUrl,RequestIPs) VALUES(@ID,@log_date,@thread,@log_level,@logger,@message,@exception,@UserID,@PlatName,@Module,@Operation,@DeviceID,@HRVersion,@CustomerID,@RequestUrl,@RequestIPs)" /> <!--logger4net-->
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter> <!--ID-->
<parameter>
<parameterName value="@ID" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{ID}" />
</layout>
</parameter>
<!--UserID -->
<parameter>
<parameterName value="@UserID" />
<dbType value="Int32" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{UserID}" />
</layout>
</parameter>
<!--PlatName -->
<parameter>
<parameterName value="@PlatName" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{PlatName}" />
</layout>
</parameter>
<!--Module -->
<parameter>
<parameterName value="@Module" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{Module}" />
</layout>
</parameter>
<!--Operation -->
<parameter>
<parameterName value="@Operation" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{Operation}" />
</layout>
</parameter>
<!--RequestIPs -->
<parameter>
<parameterName value="@RequestIPs" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{RequestIPs}" />
</layout>
</parameter>
<!--RequestUrl -->
<parameter>
<parameterName value="@RequestUrl" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{RequestUrl}" />
</layout>
</parameter>
<!--DeviceID -->
<parameter>
<parameterName value="@DeviceID" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{DeviceID}" />
</layout>
</parameter>
<!--HRVersion -->
<parameter>
<parameterName value="@HRVersion" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{HRVersion}" />
</layout>
</parameter>
<!--CustomerID -->
<parameter>
<parameterName value="@CustomerID" />
<dbType value="String" />
<size value="" />
<layout type="HuRongClub.Log.CustomLayout">
<conversionPattern value="%property{CustomerID}" />
</layout>
</parameter> <filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender> <!--Txt记录形式--> <!--信息日志-->
<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logfile\Info\" />
<param name="AppendToFile" value="true" />
<param name="datePattern" value="yyyy-MM-dd.'Info.LOG'" />
<param name="staticLogFileName" value="false" />
<param name="rollingStyle" value="Composite" />
<param name="MaxSizeRollBackups" value="-1" />
<param name="MaximumFileSize" value="5000KB" /> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date -[%thread] %-5level -%logger %message %newline%newline" />
</layout> <filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender> <!--调试日志-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logfile\Debug\" />
<param name="AppendToFile" value="true" />
<param name="datePattern" value="yyyy-MM-dd.'debug.LOG'" />
<param name="staticLogFileName" value="false" />
<param name="rollingStyle" value="Composite" />
<param name="MaxSizeRollBackups" value="-1" />
<param name="MaximumFileSize" value="5000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date -[%thread] %-5level -%logger %message %newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender> <!--警告日志-->
<appender name="WarningRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logfile\Warn\" />
<param name="AppendToFile" value="true" />
<param name="datePattern" value="yyyy-MM-dd.'warn.log'" />
<param name="staticLogFileName" value="false" />
<param name="rollingStyle" value="Composite" />
<param name="MaxSizeRollBackups" value="-1" />
<param name="MaximumFileSize" value="5000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n记录时间:%date %n日志级别:%-5level %n日 志 类:%logger %n日志描述:%message %newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender> <!--错误日志-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logfile\Error\" />
<param name="AppendToFile" value="true" />
<param name="datePattern" value="yyyy-MM-dd.'error.LOG'" />
<param name="staticLogFileName" value="false" />
<param name="rollingStyle" value="Composite" />
<param name="MaxSizeRollBackups" value="-1" />
<param name="MaximumFileSize" value="5000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n记录时间:%date %n日志级别:%-5level %n日 志 类:%logger %n日志描述:%message %newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Error" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender> <root>
<level value="All" />
<!--数据库 形式记录日志-->
<!--<appender-ref ref="ADONetAppenderMySqlClient" />--> <!--文件形式记录日志-->
<appender-ref ref="ErrorRollingFileAppender" />
<appender-ref ref="DebugRollingFileAppender" />
<appender-ref ref="WarningRollingFileAppender" />
<appender-ref ref="InfoRollingFileAppender" />
</root>
</log4net> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
asp.net 的log4net的helper类的更多相关文章
- 一点ASP.NET MVC Html.Helper类的方法
一点ASP.NET MVC Html.Helper类 这里就只写一个Html.ActionLink()和Html.DropdownList(). Html.ActionLink()里有三个参数,第一个 ...
- MVC中使用HTML Helper类扩展HTML控件
文章摘自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/1415005.html MVC在view页面,经常需要用到很多封装好的HTML控件 ...
- ASP.NET Core MVC – Tag Helper 组件
ASP.NET Core Tag Helpers系列目录,这是第五篇,共五篇: ASP.NET Core MVC – Tag Helpers 介绍 ASP.NET Core MVC – Caching ...
- Asp.net Core + Log4net + ELK 搭建日志中心
原文:Asp.net Core + Log4net + ELK 搭建日志中心 Docker中一键安装ELK 对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasti ...
- .NET中的加密算法总结(自定义加密Helper类续)
1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等).我也看到过很多人写过.NET中加密算法总结,但我发 ...
- 之前采用的是Helper类的方法重构时改用了扩展方法
在手机端输入网址不方全,通常会将网址做成一个二维码,然后用手机扫一下就可以打开预览.我们每改一下样式,就在手机上点一下刷新或电脑上按一下F5,这在最初的时候,也不觉得有什么问题,因为拿到我手上的静态页 ...
- Task的在主线程处理异常信息的Helper类
最近使用task时候需要把异常记录日志,直接注入非单例模式的实例进入异步线程,在高并发情况下会出现一些问题. 所以需要把异常反馈给主线程 ,并且不在主线程里进行等待,研究相关资料后,自己写了一个简单的 ...
- Util和Helper类
Util和Helper Util Util类,应该是一个无状态的类,只有静态方法. 比如在获取某些类的全局实例化对象的时候可以使用. public class ParamUtil { ... publ ...
- 基于log4net的帮助类Log
using log4net; using System; using System.Collections.Generic; using System.Diagnostics; using Syste ...
随机推荐
- ShortKey – Visual Studio/VS Code etc.
Switching between .h and .cppIn Visual Studio 2013 and later :there is a default keyboard shortcut f ...
- zabbix--邮件告警报错“Support for SMTP authentication was not compiled in”
zabbix 邮件告警报错“Support for SMTP authentication was not compiled in” 邮件报警失败:Support for SMTP authentic ...
- zabbix--告警消息内容更改
zabbix 告警消息内容更改 自带的消息内容模板发送出来的消息着实有点丑陋,再加之是英文,这就让我有点尴尬了. 如下默认的消息内容: 更改过后的效果: 操作步骤 编辑默认的Report proble ...
- webpack4.0报WARNING in configuration警告
在进行webpack打包工作时,先进行如下步骤 1). 安装webpack:推荐全局命令 cnpm install webpack -g 查看webpack版本 webpack -v 2) . 此时 ...
- Linux学习25-Xshell设置页面最大显示行数
前言 在使用xshell查看日志的时候,有时候日志太多,往上翻的时候,前面的就找不到了. 需要设置xshell的页面显示最大行数,查看更多的日志详情. 设置显示行数 左上角-文件-属性 终端-设置最大 ...
- python基础语法7 闭包函数与装饰器
闭包函数: 1.闭包函数必须在函数内部定义 2.闭包函数可以引用外层函数的名字 闭包函数是 函数嵌套.函数对象.名称空间与作用域 结合体. # 直接传参 def func(x): print(x) f ...
- 解决:C++ 中 main函数 wmain函数 _tmain函数 WinMain函数 wWInMain函数 _tWinMain函数的区别
main函数与WinMain函数区别: 前者为控制台程序入口主函数,后者为Windows API窗体程序入口函数,在windef.h文件中定义. main函数与wmain函数 | WinMain函数与 ...
- LeetCode 886. Possible Bipartition
原题链接在这里:https://leetcode.com/problems/possible-bipartition/ 题目: Given a set of N people (numbered 1, ...
- 015_matlab运行C语言
视频教程:https://v.qq.com/x/page/q3039wsuged.html 资料下载:https://download.csdn.net/download/xiaoguoge11/12 ...
- MongoDB 企业版4.2.2安装
一.下载企业版MongoDB安装RPM包 https://www.mongodb.com/download-center/enterprise 二.安装MogoDB4.2.2企业版 1.安装依赖包 n ...