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配置日志的更多相关文章

  1. Log4Net 配置日志按日期和日志级别分类写入

    配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...

  2. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  3. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  4. c# 文件日志处理 需要log4net配置

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  5. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  6. log4Net(写入日志文件)

    这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...

  7. Common.Logging log4net Common.Logging.Log4Net 配置

    1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...

  8. log4net 配置

    1.是直接在代码中通过调用XmlConfigurator.Configure()来解析配置文件,配置日志环境. log4net.Config.XmlConfigurator.Configure(); ...

  9. Log4Net配置以及使用

    跟踪程序代码,及时发现程序的运行状态,是每个成熟的软件所必不可少的一个环节,网站发布到真实的环境之后,对于程序的运行状态,我们并不能想开发环境那也,点击调试.日志记录显示就尤为重要,在.NET中记录日 ...

随机推荐

  1. python zip()函数的使用

    解释: 后缀为zip的文件肯定都见过吧?zip是打包压缩好的一个文件,所以,zip()函数也简单的理解为打包压缩函数,将不同个数相同类型的字段结合在一起. 官方定义为:zip() 函数用于将可迭代的对 ...

  2. NOIP 提高组 2014 联合权值(图论???)

    传送门 https://www.cnblogs.com/violet-acmer/p/9937201.html 题解: 相关变量解释: int n; int fa[maxn];//fa[i] : i的 ...

  3. redis主从复制配置(1)

    我们来配置一个一主两从的服务,根据前面写的已经配置好的redis基础上进行主从配置 一:进入redis的配置目录 cd /usr/local/redis 创建下面3个目录,命令为:make -p /u ...

  4. Yii2的mongodb的聚合操作

    最近项目使用到mongodb的聚合操作,但是yii文档中对这方面资料较少,记录下 $where['created_time'] = ['$gt' => "$start_date_str ...

  5. Excel:11个查询函数组合

    还不懂?上栗子~ 1.普通查找 根据表二中的姓名,查找表一对应的应发工资.最基础的VLOOKUP函数就能搞定. 2.反向查找 根据表二姓名,查找表一编号.但表一中编号列在姓名列之前,无法直接使用VLO ...

  6. lucene和solr的区别(六)

    Lucene是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言).Lucene的 ...

  7. sping入门

    SpringMVC 1.RequestMapping 处理地址映射请求 参数: value, produces, method, params, headers value:指定请求的实际地址 1.最 ...

  8. Dubbo服务端结合maven打jar包

    <build>        <finalName>odao-weixin-user</finalName>        <resources>   ...

  9. Git(管理修改)

    现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改 ...

  10. Elasticsearch分片优化

    原文地址:https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index 大多数ElasticSearch用户在创建索引 ...