C# log4net 日志输出的实现示例

目录
  • 第一步:安装log4net
  • 第二步:添加log4net.config配置文件
  • 第三步:添加日志配置
  • 第四步:AssemblyInfo.cs中配置 Watch = true

思路:
1.安装插件:安装log4net
2.使用配置:添加log4net.config配置文件
3.输出日志文件格式:添加日志配置
4.AssemblyInfo.cs中配置

第一步:安装log4net

第二步:添加log4net.config配置文件

新增log4net.config配置文件,内容如下,与Program.cs同一目录即可。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<configSections>
		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
	</configSections>
	<log4net>
		<!--level取值:OFF FATAL ERROR WARN INFO DEBUG ALL -->
		<logger name="loginfo">
			<level value="ALL"/>
			<appender-ref ref="InfoAppender"/>
		</logger>
		<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
			<param name="File" value="log\\"/>
			<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
			<param name="AppendToFile" value="true"/>
			<param name="MaxFileSize" value="10240"/>
			<param name="StaticLogFileName" value="false"/>
			<param name="DatePattern" value="yyyy-MM-dd&quot;.txt&quot;"/>
			<param name="RollingStyle" value="Date"/>
			<layout type="log4net.Layout.PatternLayout">
				<param name="ConversionPattern" value="%d [%p] - %m%n"/>
			</layout>
		</appender>
	</log4net>
</configuration>

并设置 – 属性 – 复制到输出目录为:始终复制

第三步:添加日志配置

在文件Program.cs应用程序主入口加入:

LogUtils.SetConfig(new FileInfo(Application.StartupPath + @"\log4net.config"));

LogUtils.cs 写入日志公共类

class LogUtils
{
	private static readonly ILog loginfo = LogManager.GetLogger("loginfo");

	/// <summary>
	/// 从缺省配置文件获取日志配置
	/// </summary>
	public static void SetConfig()
	{
		XmlConfigurator.Configure();
	}

	/// <summary>
	/// 从指定配置文件获取日志配置
	/// </summary>
	/// <param name="configFile">指定的配置文件</param>
	public static void SetConfig(FileInfo configFile)
	{
		XmlConfigurator.Configure(configFile);
	}

	/// <summary>
	/// 生成分类日志
	/// </summary>
	/// <param name="info">日志信息</param>
	/// <param name="dirName">保存目录名,形如d:\log\aaa</param>
	private static void WriteSortLog(string info, string dirName)
	{
		try
		{
			if (false == System.IO.Directory.Exists(dirName))
			{
				System.IO.Directory.CreateDirectory(dirName);
			}
			string path = dirName + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
			StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default);
			sw.WriteLine(DateTime.Now.ToString("HH:mm:ss: ") + info);
			sw.Close();
		}
		catch (Exception ex)
		{
			string expMsg = "WriteSortLog异常:" + ex.Message + Environment.NewLine + ex.StackTrace;

			if (ex.InnerException != null)
				expMsg += Environment.NewLine + "InnerException:" + ex.InnerException.Message;

			Error(expMsg, ex);
		}
	}

	/// <summary>
	/// Info级 常规日志
	/// </summary>
	/// <param name="info">日志信息</param>
	public static void Info(string info)
	{
		if (loginfo.IsInfoEnabled)
		{
			loginfo.Info(info);
		}
	}

	/// <summary>
	/// Info 先生成常规日志,然后在指定目录另外创建一份日志
	/// 主要用来需要对日志进行分类时使用
	/// </summary>
	/// <param name="info"></param>
	/// <param name="dirName"></param>
	public static void Info(string info, string dirName)
	{
		if (loginfo.IsInfoEnabled)
		{
			//生成常规日志
			loginfo.Info(info);

			//生成分类日志
			WriteSortLog(info, dirName);
		}
	}

	/// <summary>
	/// Debug级 常规日志
	/// </summary>
	/// <param name="info">日志信息</param>
	public static void Debug(string info)
	{
		if (loginfo.IsDebugEnabled)
		{
			loginfo.Debug(info);
		}
	}

	/// <summary>
	/// Debug级 异常日志
	/// </summary>
	/// <param name="info">日志信息</param>
	/// <param name="exp">异常信息</param>
	public static void Debug(string info, Exception exp)
	{
		if (loginfo.IsDebugEnabled)
		{
			loginfo.Debug(info, exp);
		}
	}

	/// <summary>
	/// Error级 常规的日志
	/// </summary>
	/// <param name="info">日志信息</param>
	public static void Error(string info)
	{
		if (loginfo.IsErrorEnabled)
		{
			loginfo.Error(info);
		}
	}

	/// <summary>
	/// Error 异常日志
	/// </summary>
	/// <param name="info">日志信息</param>
	/// <param name="exp">异常信息</param>
	public static void Error(string info, Exception exp)
	{
		if (loginfo.IsErrorEnabled)
		{
			loginfo.Error(info, exp);
		}
	}

	/// <summary>
	/// Fatal级 常规日志
	/// </summary>
	/// <param name="info">日志信息</param>
	public static void Fatal(string info)
	{
		if (loginfo.IsFatalEnabled)
		{
			loginfo.Fatal(info);
		}
	}

	/// <summary>
	/// Fatal级 异常日志
	/// </summary>
	/// <param name="info">日志信息</param>
	/// <param name="exp">异常信息</param>
	public static void Fatal(string info, Exception exp)
	{
		if (loginfo.IsFatalEnabled)
		{
			loginfo.Fatal(info, exp);
		}
	}

	/// <summary>
	/// Warn级 常规日志
	/// </summary>
	/// <param name="info">日志信息</param>
	public static void Warn(string info)
	{
		if (loginfo.IsWarnEnabled)
		{
			loginfo.Warn(info);
		}
	}

	/// <summary>
	/// Warn级 异常日志
	/// </summary>
	/// <param name="info">日志</param>
	/// <param name="exp">异常信息</param>
	public static void Warn(string info, Exception exp)
	{
		if (loginfo.IsWarnEnabled)
		{
			loginfo.Warn(info, exp);
		}
	}
}

第四步:AssemblyInfo.cs中配置 Watch = true

在项目Properties文件夹下AssemblyInfo.cs中加入:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

最后通过

LogUtils.Error(“错误日志”);
LogUtils.Info(“正常输出日志”);
LogUtils.Warn(“温馨提示日志”);

最后启动项目:会在项目debug目录下输出日志文件夹log内

到此这篇关于C# log4net 日志输出的实现示例的文章就介绍到这了,更多相关C# log4net 日志输出内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • .NET Core下使用Log4Net记录日志的方法步骤

    Log4Net 相信大家都很熟悉了,算是比较主流和著名的日志组件了. 官网: logging.apache.org 开源地址: https://github.com/apache/logging-log4net 最佳实践 在项目中添加组件包 Install-Package log4net 添加 log4net.config 文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> &

  • asp.net中使用log4net详解

    说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中.并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息).要想获取最新版本的

  • 在.NET 6中使用日志组件log4net的方法

    本文将简单介绍在.NET 6中使用log4net的方法,具体见下文范例. 1.首先新建一个ASP.NET Core空项目 2.通过Nuget包管理器安装下面两个包 log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore 3.在项目根目录下新建log4net的配置文件log4net.config,并将其设置为始终复制. <?xml version="1.0" encoding="utf-8" ?> &

  • C#使用log4net记录日志的方法步骤

    一.Nuget安装log4net --> Install-Package log4net 二.在AssemblyInfo.cs文件中添加log4net.dll的参数. [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true 三.右击项目→添加→新建项→xxx配置文件(web或者win

  • .NET6在WebApi中使用日志组件log4net

    目录 1.安装依赖 2.配置文件 3.注册组件 4.使用 1.安装依赖 Microsoft.Extensions.Logging.Log4Net.AspNetCore 2.配置文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <!-- This section contains the log4net configuration settings --> <

  • C# log4net 日志输出的实现示例

    目录 第一步:安装log4net 第二步:添加log4net.config配置文件 第三步:添加日志配置 第四步:AssemblyInfo.cs中配置 Watch = true 思路: 1.安装插件:安装log4net 2.使用配置:添加log4net.config配置文件 3.输出日志文件格式:添加日志配置 4.AssemblyInfo.cs中配置 第一步:安装log4net 第二步:添加log4net.config配置文件 新增log4net.config配置文件,内容如下,与Program

  • Python常用模块logging——日志输出功能(示例代码)

    用途 logging模块是Python的内置模块,主要用于输出运行日志,可以灵活配置输出日志的各项信息. 基本使用方法 logging.basicConfig(level=logging.DEBUG, format='levelname:%(levelname)s filename: %(filename)s ' 'outputNumber: [%(lineno)d] thread: %(threadName)s output msg: %(message)s' ' - %(asctime)s'

  • logback自定义json日志输出示例详解

    目录 前言 依赖的jar maven坐标 配置Appender节点 appender配置说明: 配置logger节点 logger配置说明: 前言 先说下楼主的使用场景吧,将程序的某些方法调用以json格式的内容记录到文件中,提供给大数据做数据分析用.当然这个需求实现起来很简单,通过aop拦截切面统一输出内容到文件即可.下面要介绍的就是通过logback日志体系以及logstash提供的json log依赖将数据以json格式记录到日志文件的例子. 依赖的jar logstash-logback

  • 使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析

    Log4j组件构成  Log4j由三个重要的组件构成: 1.日志信息的优先级(Logger) 2.日志信息的输出目的地(Appender) 3.日志信息的输出格式(Layout). 概要: 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度: 日志信息的输出目的地指定了日志将打印到控制台还是文件中: 而输出格式则控制了日志信息的显示内容. Log4j介绍 Log4j是 Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信

  • Node.js利用console输出日志文件的方法示例

    通常我们在写Node.js程序时,都习惯使用console.log打印日志信息,但这也仅限于控制台输出,有时候我们需要将信息输出到日志文件中,实际上利用console也可以达到这个目的的,今天就来简单介绍一下. 我们首先创建如下文件: // index.js let fs = require('fs'); let options = { flags: 'a', // append模式 encoding: 'utf8', // utf8编码 }; let stdout = fs.createWri

  • C#控制台程序使用Log4net日志组件详解

    C#控制台程序使用Log4net日志组件,供大家参考,具体内容如下 1.Log4net一般都不陌生,但是在配置上不同类型的项目又不相同的地方比如C#控制台程序和C# MVCWeb项目,拿控制台项目为例 项目源码在文章底部 2.首先创建一个控制台程序,引入Log4net.dll --使用NuGet 3.进行一些简单的配置,在App.config文件中配置,如果大家没有App.config文件,可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加. <?xml version="1.0

  • Log4net 日志记录详细介绍及应用

    Log4net 日志 概要: Log4net是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具.日志是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运行过程的步骤.成功失败记录下来,将关键性的数据记录下来,进而分析系统问题所在.因为对于网站来说,不能把异常信息显示给用户,异常信息只能记录到日志.网站出问题后,开发人员查看日志就知道问题所在. 一.如何配置Log4net环境 1.添加"应用程序配置文件"(App.config); 2

  • Log4Net 日志配置[附带源码下载]

    前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库,并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息).log4net 有四种主要的组件,分别是Logger(记录器), Repos

  • C#实现Log4Net日志分类和自动维护实例

    本文实例讲述了C#实现Log4Net日志分类和自动维护的实现方法.分享给大家供大家参考.具体实现方法如下: 一.背景 在程序中,我们调试运行时信息,Log4Net是一个不错的解决方案.不知道是我用的不好,用到最后反而都不想看日志了.原因是因为我n个功能使用的默认的Logger来记录日志,这样以来,所有功能记录的信息都依赖同一个配置,于是所有的信息都在一个文件中,有时候查找起来,极其不方便. 我想,能不能按照功能分类呢?如果通过配置不同的logger,然后功能根据不同的LoggerName加载Il

  • C# 使用 log4net 日志组件的方法

    一. 什么是 log4net Apache log4net 库是帮助程序员将日志语句输出到各种输出目标的工具,它是从Java中的Log4j迁移过来的一个.Net版的开源日志框架.log4net 的一个显著特征是分层记录器的概念,使用这些记录器可以有选择地控制任意粒度输出日志语句.主要特征如下: 支持多个框架 输出到多个日志记录目标 分层日志记录体系结构 XML 配置 动态配置 日志记录上下文 久经考验的架构 模块化和可扩展设计 高性能和灵活性 二.C# 使用 log4net 添加Nuget 包,

随机推荐