Files
Web_AUTSDATA_Mvc_Prod/AUTS.Log4Net/LoggerFactory.cs
2025-11-20 13:11:05 +08:00

62 lines
2.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using log4net;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AUTS.Log4Net
{
/// <summary>
/// Logger 工厂
/// </summary>
class LoggerFactory
{
private static Dictionary<string, ILog> dicLog = new Dictionary<string, ILog>();
/// <summary>
/// 创建实例 默认读取App_Data 下的log4net.config文件
/// </summary>
/// <param name="loggerName"></param>
/// <returns></returns>
public static ILog CreateInstance(string loggerName)
{
return CreateInstance(loggerName, null);
}
/// <summary>
/// 创建实例
/// </summary>
/// <param name="loggerName"></param>
/// <param name="configFilename">log4net.config文件路径</param>
/// <returns></returns>
public static ILog CreateInstance(string loggerName, string configFilename)
{
if (!dicLog.ContainsKey(loggerName))
{
if (string.IsNullOrWhiteSpace(configFilename))
{
configFilename = Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).FullName + "\\App_Data\\configs\\log4net.config";
}
log4net.Config.XmlConfigurator.Configure(new FileInfo(configFilename));
//从配置文件中读取Logger对象
//WebLogger 里面的配置信息是用来将日志录入到数据库的
//做为扩展 做判断来确定日志的记录形式数据库也好txt文档也好控制台程序也好。
var log = log4net.LogManager.GetLogger(loggerName);
//防止并发出错
if (!dicLog.ContainsKey(loggerName))
{
dicLog.Add(loggerName, log);
}
return log;
}
else
{
return dicLog[loggerName];
}
}
}
}