Log4Net 用法记录
https://www.cnblogs.com/lzrabbit/archive/2012/03/23/2413180.html
https://blog.csdn.net/guyswj/article/details/81940188
一、引用log4net
二、在AssemblyInfo.cs中添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
三、新增配置文件log4net.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net debug="true">
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="bin\\logError\\" />
<!--是否向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Composite" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd".log"" />
<!--日志保留天数-->
<param name="MaxSizeRollBackups" value="20" />
<!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
<param name="MaximumFileSize" value="1024KB" />
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date%newline线程ID:[%thread]%newline日志级别:%-5level%newline执行时间:%r毫秒%newline出错类:%logger%newline出错位置:%l%newline错误描述:%message%newline异常信息:%exception%newline"/>
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="bin\\logInfo\\" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy-MM-dd".log"" />
<param name="MaxSizeRollBackups" value="20" />
<param name="MaximumFileSize" value="1024KB" />
<param name="StaticLogFileName" value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %m %n" />
</layout>
</appender>
<logger name="logerror">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
</log4net>
</configuration>
四、封装Log4Helper类
public class Log4Helper
{
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
public static void Info(params System.Object[] info)
{
if (loginfo.IsInfoEnabled)
{
string msg = string.Empty;
msg = toString(info);
loginfo.Info(msg);
}
}
public static void Error(Exception e, params System.Object[] info)
{
if (logerror.IsErrorEnabled)
{
string msg = string.Empty;
msg = toString(info);
logerror.Error(msg, e);
}
}
/// <summary>
/// 接收不定参数转为字符串
/// </summary>
/// <param name="msg"></param>
/// <returns></returns>
public static string toString(params System.Object[] msg)
{
string result = string.Empty;
for (int i = 0; i < msg.Length; i++)
{
if (result.Length > 0)
{
result = result + " ";
}
result = result + msg[i];
}
return result;
}
}
五、调用示例
using ...;
Log4Helper .Info("appKey", "name", 123456789);
// Log4Helper .Error(e, "appKey", "name", 123456789);
Log4Helper .Error(new Exception("log4net测试致命信息"), "appKey", "proCode", 123456789);
log4net使用中loginfo.IsInfoEnabled=false问题解决方法
https://www.cnblogs.com/so-yi/p/9783887.html
Log4Net 用法记录的更多相关文章
- 【转】Log4net用法
Log4net用法 http://www.cnblogs.com/hfliyi/archive/2012/05/20/2510783.html
- pt-kill 用法记录
pt-kill 用法记录 # 参考资料Percona-Toolkit系列之pt-kill杀会话利器http://www.fordba.com/percona-toolkit-pt-kill.html ...
- LOG4NET用法(个人比较喜欢的用法)
LOG4NET用法(个人比较喜欢的用法) http://fanrsh.cnblogs.com/archive/2006/06/08/420546.html
- CURL 用法记录
CURL 用法记录 在工作中经常需要用到curl 命令,记录一下常用的场景 Send a POST Request with JSON Data curl -d '{"login" ...
- Log4net用法
日记是我们在程序中经常用到的,故记于此 首先要下载Log4net.dll 官方网站:http://logging.apache.org/log4net/ vs里创建一个c#控制台程序,在App.con ...
- log4net日志记录
这里是接着上一篇来优化的,上篇:ASP.NET MVC中错误日志信息记录 log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件,数据库,EventLog等),日志就是程序的黑 ...
- Log4Net日志记录两种方式
简介 log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. log4net是Ap ...
- MVC4.0 利用HandleErrorAttribute和log4net实现记录异常日志功能
1.MVC4.0中HandleErrorAttribte已经帮我们处理了异常问题,当我们新建一个非空的MVC项目时候,在FilterConfig中会发现这样的代码 public class Filte ...
- C#- 实用的Log4Net日志记录例子
工作中也是要用到日志记录的,LOG4NET在这块做的不错,以后可以继续拿来用. 1.引用DLL 2.LOG4NET的配置文件 <?xml version="1.0" enco ...
随机推荐
- Scala之面向对象
1. Scala基础练习 不使用str.toLong,str.toInt/Integer.valueOf()/Long.valueOf/Integer.parseInt()等,将字符串"12 ...
- Audio / Video Playback
For Developers > Design Documents > Audio / Video Playback Interested in helping out? Ch ...
- 在ubuntu上编译rasbian kernel(for raspberry pi 1)
raspberry pi官网的编译手册写的简洁有力,照着操作即可 https://www.raspberrypi.org/documentation/linux/kernel/building.md ...
- oracle 12c 关于wm_concat 的替换;LISTAGG
之所以用到了wm_concat函数.是想到达这样的结果集. 转为这样的===========> 返回这样的数据,易与配合echarts的数据准备. 看上去十分的方便,但是遗憾的是,oracle极 ...
- caioj 1086 动态规划入门(非常规DP10:进攻策略)
一开始看到题目感觉很难 然后看到题解感觉这题贼简单,我好像想复杂了 就算出每一行最少的资源(完全背包+二分)然后就枚举就好了. #include<cstdio> #include<a ...
- 雅礼集训1-9day爆零记
雅礼集训1-9day爆零记 先膜一下虐爆我的JEFF巨佬 Day0 我也不知道我要去干嘛,就不想搞文化科 (文化太辣鸡了.jpg) 听李总说可以去看(羡慕)各路大佬谈笑风声,我就报一个名吧,没想到还真 ...
- 百度地图API的使用示例
刚刚工作的时候写过百度地图API文档,那时候没有记录到技术博客里面,今天在群里看见有个姑娘在问这个问题,重温了一遍,这个API还算好用.百度地图API,集成简单好用,全面,兼容问题,文档全面: 官方文 ...
- CMSIS-RTOS的使用
CMSIS-RTOS实现通常作为库提供.要将RTOS功能添加到现有的基于CMSIS的应用程序,需要添加RTOS库(通常是配置文件).RTOS库的可用功能在头文件cmsis_os.h中定义,该文件特定于 ...
- Redis中的持久化操作
本篇博客主要来解说一下怎样Redis中的持久化操作,当然了不是一篇理论性的博客,主要还是分享一下在redis中怎样来配置持久化操作. 1.介绍 redis为了内部数据的安全考虑,会把本身的数 ...
- 使用JEECG心得
使用JEECG心得 我就不做JEECG的介绍了,提供一个网址.能够更加清晰的了解JEECG文档. http://www.jeecg.org/book/jeecg_v3.html 用JEECG已经几乎相 ...