Log4Net配置日志
1.log4net
1)新建一个Net空白项目,在引用出点击管理NuGet程序包,搜索log4net并安装
2)建立log4net.config配置文件
在configuration里面添加如下代码,级别为All,log的所有消息都可以调用
<!--配置小节——版本声名-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-2.0.8.0"/>
</configSections> <log4net>
<!--记录器,程序入口-->
<logger name="logFile">
<level value="All"/>
<appender-ref ref="LogFileAppender" />
</logger>
<!--附属配置-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="./Log/log.txt" />
<param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n==========
%n【日志级别】%-5level
%n【记录时间】%date
%n【线程编号】[%thread]
%n【执行时间】[%r]毫秒
%n【出错文件】%F
%n【出错行号】%L
%n【出错的类】%logger 属性[%property{NDC}]
%n【错误描述】%message
%n【错误详情】%newline"/>
</layout>
</appender>
</log4net>
并且右键属性,设置 复制到输出目录 为 如果较新则复制

3)在AssemblyInfo添加config入口
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
4)添加一个button,在click项目里面添加调用日志代码
int i = , j = ;
try
{
int result = i / j;
}
catch(Exception ex)
{
log.Error("出错了!", ex);
}



2.封装LogHelper(和上面无关,这个是封装一个LogHelper,包括配置)
添加Nuget包log4net
新建一个标准库LogHelper
using log4net;
using log4net.Config;
using log4net.Repository;
using System;
using System.IO;
[assembly: XmlConfigurator(Watch = true)]
namespace LogHelper
{
public class Log4Helper
{
private static ILog logger = null;
public static void LogInfo(string logstr)
{
if (logger == null)
InitLog4net();
logger.Info(logstr);
}
public static void LogError(string logstr, Exception ex = null)
{
if (logger == null)
InitLog4net();
logger.Error(logstr);
if (ex != null)
logger.Error(ex.ToString());
}
private static object objlock = new object();//初始化log用的锁
private static void InitLog4net()
{
lock (objlock)
{
ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");
//获取配置文件路径
var conpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config");
XmlConfigurator.Configure(repository, new FileInfo(conpath));
logger = LogManager.GetLogger(repository.Name, "NETCorelog4net");
}
}
}
}
在类库添加log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="infoAppender" />
<appender-ref ref="errorAppender" />
<appender-ref ref="sqlAppender" />
</root>
<appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
<file value="log/" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<datePattern value="'error'yyyyMMdd'.log'" />
<maxSizeRollBackups value="" />
<maximumFileSize value="1MB" />
<threshold value="ERROR" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline--------%date--------%newline%message" />
</layout>
</appender>
<appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
<file value="log/" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<datePattern value="'info'yyyyMMdd'.log'" />
<maxSizeRollBackups value="" />
<maximumFileSize value="1MB" />
<threshold value="INFO" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline--------%date--------%newline%message" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Info" />
<param name="LevelMax" value="Info" />
</filter>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
</log4net>
</configuration>
打包,其他项目引用这个包,会自动生成log4net.config,设置属性 复制到输出目录->如果较新则复制
使用起来也很简单
Log4Helper.LogInfo("进来了");
Log4Helper.LogError("error");
Log4Helper.LogError("error", ex);
Log4Net配置日志的更多相关文章
- Log4Net 配置日志按日期和日志级别分类写入
配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...
- ASP.NET MVC学习之Log4Net配置(日志记录)
Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...
- C# 日志系统 log4net 配置及使用
1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...
- c# 文件日志处理 需要log4net配置
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- Log4Net异常日志记录在asp.net mvc3.0的应用
前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...
- log4Net(写入日志文件)
这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...
- Common.Logging log4net Common.Logging.Log4Net 配置
1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...
- log4net 配置
1.是直接在代码中通过调用XmlConfigurator.Configure()来解析配置文件,配置日志环境. log4net.Config.XmlConfigurator.Configure(); ...
- Log4Net配置以及使用
跟踪程序代码,及时发现程序的运行状态,是每个成熟的软件所必不可少的一个环节,网站发布到真实的环境之后,对于程序的运行状态,我们并不能想开发环境那也,点击调试.日志记录显示就尤为重要,在.NET中记录日 ...
随机推荐
- JVM 辣鸡回收
垃圾回收算法 标记清除法 先标记出需要回收的对象,然后一次性回收.缺点:会产生内存碎片,并且效率也不高. 标记压缩法 先标记出需要回收的对象,然后让存活对象向一端移动,移动的过程中进行回收辣鸡.避免了 ...
- 拆分字符串法 获取url的GET参数
function serilizeURL(url){ var rs=url.split("?")[1]; var arr=rs.split("&"); ...
- appium在不同类中使用的是同一个session
要这么做的起因: 测试testng框架的时候,不同类之间可以按照顺序执行,不会互相干扰.但是换成了appium,在A类中启动了session,初始化或者一些数据我仍然要用之前的session,那就不行 ...
- 免费馅饼 HDU - 1176 (动态规划)
都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内.馅饼如果掉在了地上当然就 ...
- Linux平台中使用PHP让word转pdf
1.ubantu下安装libreoffice sudo apt-get install libreoffice 2.命令行执行word转pdf 将 /home/wordToPdf/ ...
- Luogu P3355 骑士共存问题
题目链接 \(Click\) \(Here\) 二分图最大独立集.对任意两个可以相互攻击的点,我们可以选其中一个.对于不会互相攻击的,可以全部选中.所以我们只需要求出最大匹配,根据定理,二分图最大独立 ...
- (Dijkstra) POJ1797 Heavy Transportation
Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 53170 Accepted: ...
- PV、UV、UIP、VV、CPC、CPM、RPM、CTR解释
PV.UV.UIP.VV.CPC.CPM.RPM.CTR 具体解释 PV:Page View,页面访问量,也就是曝光量. UV:Unique Visitor,独立访客数,同一个访问多次访问也只算1个访 ...
- CodeForces121E 线段树上线段果
http://codeforces.com/problemset/problem/121/E 题意: Petya 喜欢幸运数,幸运数只包含 4 和 7 这两个数字.例如 47,744,4 都是幸运数字 ...
- JavaSet接口、唯一元素和Map接口整理
Set接口 1.1 HashSet集合存储数据的结构(哈希表) HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与equals()方法. 哈希表底层,使用的 ...