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

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

第一步:安装log4net

C# log4net 日志输出的实现示例_第1张图片

C# log4net 日志输出的实现示例_第2张图片

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

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



	
		

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

C# log4net 日志输出的实现示例_第3张图片

第三步:添加日志配置

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

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

C# log4net 日志输出的实现示例_第4张图片

LogUtils.cs 写入日志公共类

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

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

	/// 
	/// 从指定配置文件获取日志配置
	/// 
	/// 指定的配置文件
	public static void SetConfig(FileInfo configFile)
	{
		XmlConfigurator.Configure(configFile);
	}

	/// 
	/// 生成分类日志
	/// 
	/// 日志信息
	/// 保存目录名,形如d:\log\aaa
	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);
		}
	}

	/// 
	/// Info级 常规日志
	/// 
	/// 日志信息
	public static void Info(string info)
	{
		if (loginfo.IsInfoEnabled)
		{
			loginfo.Info(info);
		}
	}

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

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

	/// 
	/// Debug级 常规日志
	/// 
	/// 日志信息
	public static void Debug(string info)
	{
		if (loginfo.IsDebugEnabled)
		{
			loginfo.Debug(info);
		}
	}

	/// 
	/// Debug级 异常日志
	/// 
	/// 日志信息
	/// 异常信息
	public static void Debug(string info, Exception exp)
	{
		if (loginfo.IsDebugEnabled)
		{
			loginfo.Debug(info, exp);
		}
	}

	/// 
	/// Error级 常规的日志
	/// 
	/// 日志信息
	public static void Error(string info)
	{
		if (loginfo.IsErrorEnabled)
		{
			loginfo.Error(info);
		}
	}

	/// 
	/// Error 异常日志
	/// 
	/// 日志信息
	/// 异常信息
	public static void Error(string info, Exception exp)
	{
		if (loginfo.IsErrorEnabled)
		{
			loginfo.Error(info, exp);
		}
	}

	/// 
	/// Fatal级 常规日志
	/// 
	/// 日志信息
	public static void Fatal(string info)
	{
		if (loginfo.IsFatalEnabled)
		{
			loginfo.Fatal(info);
		}
	}

	/// 
	/// Fatal级 异常日志
	/// 
	/// 日志信息
	/// 异常信息
	public static void Fatal(string info, Exception exp)
	{
		if (loginfo.IsFatalEnabled)
		{
			loginfo.Fatal(info, exp);
		}
	}

	/// 
	/// Warn级 常规日志
	/// 
	/// 日志信息
	public static void Warn(string info)
	{
		if (loginfo.IsWarnEnabled)
		{
			loginfo.Warn(info);
		}
	}

	/// 
	/// Warn级 异常日志
	/// 
	/// 日志
	/// 异常信息
	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)]

C# log4net 日志输出的实现示例_第5张图片

最后通过

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

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

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

你可能感兴趣的:(C# log4net 日志输出的实现示例)