.net core 使用log4net日志组件

一个web站点必须要记录日志,否则哪里出错了,完全是黑娃找黑妹,两眼一抹黑。

最常用的就是log4net日志组件。我们可以通过扩展加入日志组件。

第一步:在项目中NuGet log4net包,即 Install-Package log4net;

第二步:添加log4net.config配置文件到项目中;

第三步:在项目中新建一个LogExtension类,代码如下所示:

public static partial class LogExtension {
//配置文件,我将之放在站点根目录的Config文件夹中
private static string Log4netConfigureName => "Config/log4net.config"; //日志仓储的名称
private static string RepositoryName => "Log4NetLogRepository"; //全局使用一个日志仓储。
//注意:不允许定义多个同名的日志仓储。
public static ILoggerRepository Repository => LogManager.CreateRepository(RepositoryName); static LogExtension() {
//配置已经被实例化的日志仓储
XmlConfigurator.Configure(Repository, new FileInfo(Log4netConfigureName));
} /// <summary>
/// 获取ILog实例
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
public static ILog GetLog(this Type type) {
if (type == null)
throw new ArgumentNullException();
//只要有了日志仓库,就可以得到一个ILog的实例。因此,在这之前必须实例化一个日志仓储
return LogManager.GetLogger(RepositoryName, type);
} /// <summary>
/// 获取ILog实例
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <param name="entity"></param>
/// <returns></returns>
public static ILog GetLog<TEntity>(this TEntity entity) where TEntity : class {
//只要有了日志仓库,就可以得到一个ILog的实例。因此,在这之前必须实例化一个日志仓储
return LogManager.GetLogger(RepositoryName, typeof(TEntity));
}
}

第四步:使用方式见下图:

.net core 使用log4net日志组件

是不是很方便?简直不要太方便了!

上一篇:ExtJs非Iframe框架加载页面实现


下一篇:BZOJ4012 [HNOI2015]开店 (动态点分治)