1.nuget 中安装log4net

2。添加一个配置文件“log4net2.config”,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration> <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections> <log4net debug="true"> <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<File value="logs\"/>
<AppendToFile value="true" />
<rollingStyle value="Composite" />
<MaxSizeRollBackups value="999" />
<MaximumFileSize value="9000KB" />
<StaticLogFileName value="false" />
<DatePattern value="''yyyy-MM-dd'.log'" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d %5rms [%t] %-8.22c{1} %-2.18M - %m%n" />
<param name="Footer" value=" " />
</layout>
</appender> <root>
<level value="All" />
<appender-ref ref="RollingFile"/>
</root> </log4net> </configuration>
MaximumFileSize value="9000KB",日志文件大小超过9000KB就产生一个新文件。避免单个文件过大,打开困难。
MaxSizeRollBackups value="999",日志文件名序号从1到999。这2项根据实际情况调整。

3,代码中初始化配置

string logCfg = Path.Combine(Application.StartupPath, "log4net2.config");
XmlConfigurator.Configure(new FileInfo(logCfg));

4,写入日志

log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器

                log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log

一般会对ILog的实例封装成公共类。

Log4NetUtil:

using log4net.Config;
using System.IO;
using System.Windows.Forms; namespace CommonUtils
{
public static class Log4NetUtil
{
public static log4net.ILog _log; /// <summary>
/// 利用静态构造函数,只实例化一次。
/// </summary>
static Log4NetUtil()
{
//Application.StartupPath 是WINFORM的,可以根据需要,更换为其它
string appPath = Application.StartupPath;
// config,注意位置和名称。
string logCfg = Path.Combine(appPath, "log4net2.config");
XmlConfigurator.Configure(new FileInfo(logCfg)); //在 Configure 后,再实例化。 log 名随意
_log = log4net.LogManager.GetLogger("OH");//获取一个日志记录器
} public static void Info(string msg)
{
_log.Info(msg);//写入一条新log
} }
}

使用:

Log4NetUtil.Info("本机时间大于服务器时间");

。。

C#.NET 简单使用log4net的更多相关文章

  1. Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  2. C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  3. 在C#代码中应用Log4Net(一)简单使用Log4Net

    首先让我们先把Log4Net跑起来,示例代码在文章最后面可以下载 1.先把Log4Net引入到工程中,为了演示方便,我们先建立一个winform程序.在程序的根目录下面,建立一个Libs文件夹,以便存 ...

  4. .net 简单实用Log4net(多个日志配置文件)

    前言: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题.所以这个时候就 ...

  5. 在C#代码中应用Log4Net系列教程(附源代码)

    Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...

  6. Lucene.net站内搜索—3、最简单搜索引擎代码

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  7. Log4Net五步走

    本文不是教你全面了解log4net,本文只是希望教会你按步就班,照糊芦画瓢般就会用log4net1,引入log4net.dll组件2,建立一个配置文件两种方法,一种是在Web.Config或App.C ...

  8. 在C#代码中应用Log4Net系列教程

    在C#代码中应用Log4Net系列教程(附源代码)   Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4 ...

  9. Log4Net(一):快速入门

    概览 Log4Net是Apache Log4J框架在.NET平台上的实现,它是一个帮助开发者将日志信息以多种方式(数据库.控制台.文件等)输出的开源工具. 为什么要使用日志记录 提供应用程序运行时状态 ...

  10. 日志学习系列(一)——Log4net的基础知识学习

    今天把Log4net日志记录做了封装,作为一个公共的类库.记录一下应该注意的地方.先了解一下log4net的理论知识. 参考百度百科 一.log4net是什么? log4net库是Apache log ...

随机推荐

  1. Java异步非阻塞编程的几种方式

    简介: Java异步非阻塞编程的几种方式 一. 从一个同步的Http调用说起 一个很简单的业务逻辑,其他后端服务提供了一个接口,我们需要通过接口调用,获取到响应的数据. 逆地理接口:通过经纬度获取这个 ...

  2. 阿里开源支持10万亿模型的自研分布式训练框架EPL(EasyParallelLibrary)

    ​简介:EPL背后的技术框架是如何设计的?开发者可以怎么使用EPL?EPL未来有哪些规划?今天一起来深入了解. ​ 作者 | 王林.飒洋 来源 | 阿里技术公众号 一 导读 最近阿里云机器学习PAI平 ...

  3. Yurt-Tunnel 详解|如何解决 K8s 在云边协同下的运维监控挑战

    简介: 伴随着 5G.IoT 等技术的快速发展,边缘计算被越来越广泛地应用于电信.媒体.运输.物流.农业.零售等行业和场景中,成为解决这些领域数据传输效率的关键方式.与此同时,边缘计算形态.规模.复杂 ...

  4. 案例|自建or现成工具?小型创业团队敏捷研发探索

    简介: 实践和踩坑建议. 我是刘永良,是一名全栈开发者也是一名创业者,来自济南--一个目前被称为互联网洼地的地方.2020年4月和三位志同道合的朋友,在济南共同创建了山东旷野网络科技有限公司,主要从事 ...

  5. [ML] 深度学习的数学基础: 函数/参数优化/矩阵运算/向量化/卷积运算/张量运算

      1. 函数与导数 函数是一种映射关系,将一个或多个自变量的取值映射为一个因变量的取值. 函数的导数表示函数在某一点处的变化率,即函数图像在该点的切线斜率. 导数可以用来求解函数的最值.优化问题.拟 ...

  6. [FE] WebStorm, ESLint: Trailing spaces not allowed

    在 WebStorm 中搜索文件 .eslintrc.js 在里面的 rules 项中追加规则: 'no-trailing-spaces' : ['off', { 'skipBlankLines': ...

  7. 2023最新nacos的windows 10安装(保姆级)

    目录 前景提要 一.环境整合 构建工具(参考工具部署方式) 二.找到下载位置 1.在百度中找到下载地址.搜索nacos中文官网. 2.双击进入这个网站,看到首页找到下载位置. 3.进入git地址找到如 ...

  8. 简易的 Linux 流量实时监控工具 watch+ifstat

    非常简单小巧的流量实时监控工具,贵在不需要安装,Linux 操作系统自带,在不出外网的环境中很是实用. watch -d ifstat eth1 如果连 ifstat 都没有的环境中也可以使用 ifc ...

  9. PageOffice6 实现 word 全文检索

    在文档服务器中存储有成千上万个文档的情况下,用户想要找到并打开包含特定关键字的文档,无疑是一项艰巨的任务.如何高效地管理和检索大量的Word文档呢? 在现有的技术解决方案中,许多方法都依赖于服务器端的 ...

  10. Java面试题:Spring中的循环依赖,给程序员带来的心理阴影

    循环依赖通常发生在两个或多个Spring Bean之间,它们通过构造器.字段(使用@Autowired)或setter方法相互依赖,从而形成一个闭环.下面是一个使用字段注入(即使用@Autowired ...