任何人都可以帮助我了解如何使用 ELMAH 和 C# 记录自定义消息,以防万一成功的 Web 请求返回状态代码 200。
有没有类似于下面提到的方法:
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
记录自定义消息。
代码示例将非常有用。
谢谢和问候, 桑托什·库马尔·帕特罗
任何人都可以帮助我了解如何使用 ELMAH 和 C# 记录自定义消息,以防万一成功的 Web 请求返回状态代码 200。
有没有类似于下面提到的方法:
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
记录自定义消息。
代码示例将非常有用。
谢谢和问候, 桑托什·库马尔·帕特罗
据我所知,ELMAH 只处理异常(错误记录模块和处理程序),但是通过这个小技巧,您可以随时随地记录您想要的任何内容
请注意,这可能不是解决您的问题的唯一或最佳方法
ErrorSignal.FromCurrentContext().Raise(new NotImplementedException("blah blah blah whatever you want")); //ELMAH Signaling
我意识到这对聚会来说已经很晚了,但我发现这篇文章也想与 Elmah 一起发布一些“非异常”信息。
我开始使用Exception
自定义名称创建一个新对象,该名称将Type
在我的数据库中的字段中,但这并不是我想要的。然后我注意到 Elmah 想要一个Error
对象。那个Type
领域是{ get; set; }
所以我有我的答案。
我创建了一个静态帮助程序类,以减少每次需要它的代码:
public static class ElmahTools {
public static Error LogHangFireInfo(string message) {
var Result = new Error(new Exception(message));
Result.Type = "Hangfire Info";
return Result;
}
}
在我要记录信息的类的顶部,我添加了以下内容:
private static readonly Elmah.ErrorLog ErrorRepo = Elmah.ErrorLog.GetDefault(null);
然后在我的代码中,我想实际记录信息,我有以下内容:
ErrorRepo.Log(ElmahTools.LogHangFireInfo($"Job: {context.BackgroundJob?.Id} state has changed from {context.OldStateName} to {context.NewState.Name}"));
我最初只是打算这样做:
new Error { Type = "My Custom Info", Message = "Some message" };
但这失败了,因为TimeUtc
没有填写。所以我只是Error
用消息创建了一个相当空的内容,然后更改我需要的内容(例如Type
。)
希望这可以帮助某人。