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&quot;.log&quot;" />
<!--日志保留天数-->
<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&quot;.log&quot;" />
<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

最新文章

  1. mysql 常用自定义函数解析
  2. Eclipse几个版本号的区别
  3. Oracle 添加字段,并自增
  4. 推导大O阶方法
  5. swipe js dynamic content
  6. Android在子线程中更新UI(一)
  7. 基于C++的类编程总结
  8. prototype属性的理解
  9. thinkphp5.0入口文件
  10. iOS开发之Autolayout
  11. 快递100码json
  12. 2018-2019-2 网络对抗技术 20165303 Exp4 恶意代码分析
  13. clouderamanager安装
  14. mysql的一点小错误
  15. tmux用法【常用】
  16. jQuery的介绍和选择器详解
  17. TCP/IP具体解释学习笔记--TCP的超时与重传
  18. 【Unity】11.8 关节
  19. Ubuntu 16.04 LAMP server tutorial with Apache 2.4, PHP 7 and MariaDB (instead of MySQL)
  20. 关于append,appendTo,prepend,prependTo的区别

热门文章

  1. UVa 1001 Say Cheese【floyd】
  2. iOS-RAC学习笔记(一)——RACStream
  3. echarts 总结:
  4. HDU 3277 Marriage Match III
  5. ArcGIS api for javascript——地理编码任务-反向地理编码
  6. 网页载入进度条中的javascript
  7. 用eclipse 检索SVN 上 myEclipse 建的web项后,成java项目解决方法
  8. 理解Linq查询
  9. 阿里云aliyunlive视频直播,设置元素浮在视频上方
  10. 局域网ARP病毒的清理