Asp.net Azure网站-如何获取服务器错误详细信息(截断的跟踪文件)
我正在使用Azure Web API 2。我的客户收到大约500个错误,我正试图找出原因。我在Azure portal中打开了跟踪功能,在没有截断文件的情况下,我看到了一些很棒的信息,如:Asp.net Azure网站-如何获取服务器错误详细信息(截断的跟踪文件),asp.net,azure,Asp.net,Azure,我正在使用Azure Web API 2。我的客户收到大约500个错误,我正试图找出原因。我在Azure portal中打开了跟踪功能,在没有截断文件的情况下,我看到了一些很棒的信息,如: 235. - GENERAL_RESPONSE_ENTITY_BUFFER {"Message":...,"ExceptionMessage"...,"StackTrace":"..... 问题是我的日志文件被截断为1MB。(发布的JSON数据量可能很大,这会占用日志空间。) 我在LogFiles/Det
235. - GENERAL_RESPONSE_ENTITY_BUFFER
{"Message":...,"ExceptionMessage"...,"StackTrace":".....
问题是我的日志文件被截断为1MB。(发布的JSON数据量可能很大,这会占用日志空间。)
我在LogFiles/DetailedErrors中看到一些可能很好的.htm文件,但它们是没有任何详细信息或跟踪信息的通用页面
在Web.Config中,我设置了
。这会将详细信息添加到跟踪文件中,但不会添加到DetailedErrors htm文件中
问题:
1) 我可以增加跟踪文件的最大大小吗?(我尝试使用maxLogFileSizeKB失败,但不知道该放在哪里,可能是在Web.Config中。)
2) 是否有其他方法可以从服务器上的LogFiles目录中查看有关服务器错误的堆栈跟踪信息?我认为您的问题可能是登录到了错误的位置。有三个不同的地方可以存储日志,但是预览门户没有旧的Azure门户那么清晰。日志记录文档仍然会将您引导到要设置的旧门户,您可以登录到Blob存储或表存储。
. 记录到表可能没有那么大的限制。虽然我无法增加日志大小,但我可以使用
IEExceptionLogger
获取跟踪信息。我不需要任何特殊的错误处理,所以只需要得到通知就足够了。这适用于API(2)控制器
1) 在App_Start/WebApiConfig.cs中,我添加了以下行
config.Services.Add(typeof(IExceptionLogger), new ApiErrorLogger());
2) 创建我的ApiErrorLogger
类
public class ApiErrorLogger : ExceptionLogger {
public override void Log(ExceptionLoggerContext context) {
addLogError(context.Request.RequestUri.ToString(), context.Exception.Message, context.Exception.StackTrace);
}
public static void addLogError(string uri, string message, string stackTrace) {
// Store data in Azure table
}
}
我不必使用
,这很好,而且我可以在Azure portal中关闭跟踪(这是一种资源昂贵的方式)。你好,Amanda。谢谢你的回复。我阅读了链接,尝试使用旧的门户并将日志发送到blob存储,虽然我得到了一个日志,但它不在详细级别。我从未在blob存储上找到跟踪文件。我正在尝试一种新的方法。。。创建一个IEExceptionLogger,以便可以通知我未处理的错误并执行我自己的日志记录。我希望这能解决我的问题。再次感谢。