Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 为什么.NET核心中有LogLevel.Critical?_C#_.net_Logging_Asp.net Core_.net Core - Fatal编程技术网

C# 为什么.NET核心中有LogLevel.Critical?

C# 为什么.NET核心中有LogLevel.Critical?,c#,.net,logging,asp.net-core,.net-core,C#,.net,Logging,Asp.net Core,.net Core,我在.net核心应用程序中添加了电子邮件日志记录,如下所示: 在Startup.cs中使用以下命令 loggerfactory.AddEmail(mailService, Microsoft.Extensions.Logging.LogLevel.Critical); 日志级别。关键: 描述不可恢复的应用程序或系统崩溃或 需要立即注意的灾难性故障 因此,我开始在控制器操作中测试这一点: public ContentResult ProduceError() { var foo = n

我在.net核心应用程序中添加了电子邮件日志记录,如下所示:

在Startup.cs中使用以下命令

loggerfactory.AddEmail(mailService, Microsoft.Extensions.Logging.LogLevel.Critical);
日志级别。关键:

描述不可恢复的应用程序或系统崩溃或 需要立即注意的灾难性故障

因此,我开始在控制器操作中测试这一点:

public ContentResult ProduceError()
{
    var foo = new StackOverflower();
    System.Console.WriteLine(foo.MyText);
    return Content("<html><body></body></html>", "text/html");
}

public class StackOverflower
{
    private string m_MyText;

    public string MyText
    {
        get { return MyText; }
        set { this.m_MyText = value; }
    }
}
public ContentResult ProduceError()
{
var foo=新的StackOverflower();
System.Console.WriteLine(foo.MyText);
返回内容(“,”文本/html“);
}
公共级飞越功率
{
私有字符串m_MyText;
公共字符串MyText
{
获取{return MyText;}
设置{this.m_MyText=value;}
}
}
但这并没有记录任何东西

现在,由于日志可以很好地处理非关键错误,我有一个问题:
如果无法记录关键错误,为什么要为其设置日志级别?

还是我遗漏了什么

用于需要立即注意的故障。示例:数据丢失场景,磁盘空间不足。
-示例中的数据丢失/磁盘空间在哪里?
someLogger.LogCritical(“这很关键”)成功工作(启用控制台记录器时在控制台中打印消息)。您确定问题不在您的logger类本身吗?@Dmitry:stackoverflow上的日志?我的记录器在非关键情况下工作,所以我认为这不是问题所在。也许问题是它不能做比控制台更难的事情。WordR1:不,我在我当前打开的NETCOREAP2.0应用程序的中间简单写了“RealPrimeAcple()),我看到它工作正常,所以“它不能记录关键错误”是不正确的。如果您怀疑您的问题与堆栈溢出或其他应用程序特定的原因有关,您应该编辑您的问题,使其更具体。也可能有用。是否用未显示的代码填充堆栈?如果堆栈溢出,则无法在此线程上执行任何操作。当然,您不能调用方法。Stack overflow/out of memory=dead..to late to log可能通过释放另一个准备好的线程(可能是waithandle)的静态调用来工作,但我对此表示怀疑<代码>用于需要立即注意的故障。示例:数据丢失场景,磁盘空间不足。
-示例中的数据丢失/磁盘空间在哪里?
someLogger.LogCritical(“这很关键”)成功工作(启用控制台记录器时在控制台中打印消息)。您确定问题不在您的logger类本身吗?@Dmitry:stackoverflow上的日志?我的记录器在非关键情况下工作,所以我认为这不是问题所在。也许问题是它不能做比控制台更难的事情。WordR1:不,我在我当前打开的NETCOREAP2.0应用程序的中间简单写了“RealPrimeAcple()),我看到它工作正常,所以“它不能记录关键错误”是不正确的。如果您怀疑您的问题与堆栈溢出或其他应用程序特定的原因有关,您应该编辑您的问题,使其更具体。也可能有用。是否用未显示的代码填充堆栈?如果堆栈溢出,则无法在此线程上执行任何操作。当然,您不能调用方法。Stack overflow/out of memory=dead..to late to log可能通过释放另一个准备好的线程(可能是waithandle)的静态调用来工作,但我对此表示怀疑。。