C# 全局可访问的Log4Net变量
我目前在我的应用程序\u start中有以下设置C# 全局可访问的Log4Net变量,c#,log4net,log4net-configuration,C#,Log4net,Log4net Configuration,我目前在我的应用程序\u start中有以下设置 log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config"))); 现在为了注销到log4net,我需要向每个控制器添加一个实例 public static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.Ge
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
现在为了注销到log4net,我需要向每个控制器添加一个实例
public static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
因为这是我想在整个api中使用的东西。我可以在global.asax中声明这一点,这样我就可以打电话了
记录器错误(“输出”)
什么时候需要?不清楚你想要什么。您希望每个类都有自己的命名记录器(在这种情况下,您根本不想共享该字段),还是希望每个类都使用一个特定记录器,但不必声明它(在这种情况下,您可以让控制器从基类继承)?一般来说,为了最小化依赖关系,我想让每个想要记录日志的类都将自己的日志程序声明为私有字段。如果你想在任何地方使用相同的记录器,只需使用相同的名称。对不起,我只想添加一个全局记录器,应用程序中的任何类都可以访问它?@jeroenmoster因此,是的,理想情况下,我希望能够在任何地方调用记录器。我的一个任务是创建一个静态log4nethelper类,我可以使用log4nethelper.log.error等调用它?这是asp.net-mvc,对吗?您可能希望将其添加到问题标签中,以获得更好的回答。我知道MVC有比在任何地方引用静态字段更好的日志记录解决方案,但我自己没有经验。@MatthewFlynn您想使用您的日志记录程序记录异常和错误,还是有其他要求,如记录自定义消息?WebAPI中有内置选项,您可以使用和扩展该选项来自定义异常处理和日志记录。