Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 全局可访问的Log4Net变量_C#_Log4net_Log4net Configuration - Fatal编程技术网

C# 全局可访问的Log4Net变量

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

我目前在我的应用程序\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.GetCurrentMethod().DeclaringType);
因为这是我想在整个api中使用的东西。我可以在global.asax中声明这一点,这样我就可以打电话了

记录器错误(“输出”)


什么时候需要?

不清楚你想要什么。您希望每个类都有自己的命名记录器(在这种情况下,您根本不想共享该字段),还是希望每个类都使用一个特定记录器,但不必声明它(在这种情况下,您可以让控制器从基类继承)?一般来说,为了最小化依赖关系,我想让每个想要记录日志的类都将自己的日志程序声明为私有字段。如果你想在任何地方使用相同的记录器,只需使用相同的名称。对不起,我只想添加一个全局记录器,应用程序中的任何类都可以访问它?@jeroenmoster因此,是的,理想情况下,我希望能够在任何地方调用记录器。我的一个任务是创建一个静态log4nethelper类,我可以使用log4nethelper.log.error等调用它?这是asp.net-mvc,对吗?您可能希望将其添加到问题标签中,以获得更好的回答。我知道MVC有比在任何地方引用静态字段更好的日志记录解决方案,但我自己没有经验。@MatthewFlynn您想使用您的日志记录程序记录异常和错误,还是有其他要求,如记录自定义消息?WebAPI中有内置选项,您可以使用和扩展该选项来自定义异常处理和日志记录。