首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ASP.NET核心5.0 nlog实现不起作用

ASP.NET核心5.0 nlog实现不起作用
EN

Stack Overflow用户
提问于 2021-10-26 03:27:56
回答 1查看 279关注 0票数 0

我正在处理一个应用程序,我想要记录一个异常,但它不起作用。我想要记录的错误基本上是在validateToken上,我想知道我得到的是什么异常。这是我的实现,我添加了我在nLog中使用的所有代码。

Program.cs

代码语言:javascript
运行
AI代码解释
复制
public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args).UseNLog()
            .ConfigureLogging((hostingContext, logging) =>
            {
                // Remove all the default logging providers
                logging.ClearProviders();
                logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                logging.AddNLog().SetMinimumLevel(LogLevel.Error);
            })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

以下是nlog.config文件的屏幕截图:

appSetting.json设置文件:

代码语言:javascript
运行
AI代码解释
复制
"NLogConnection": {
    "DbProvider": "sqlserver",
    "DbHost": "SQL5103.site4now.net",
    "Database": "db_a7b629_testdatabase",
    "User": "db_a7b629_testdatabase_admin",
    "Password": "Ad*******"
  },

这里是我想要记录异常的地方

代码语言:javascript
运行
AI代码解释
复制
public class UserProfileInfo : IUserProfileInfo
{
    private readonly IHttpNetClientService _apiService;
    protected readonly IOptions<AppSettingDTO.AppSettingDTO> _appSetting;
    private readonly ILogger<UserProfileInfo> _logger;

    public UserProfileInfo(ILogger<UserProfileInfo> logger, IHttpNetClientService HttpClient, IOptions<AppSettingDTO.AppSettingDTO> AppSettings)
    {
        _apiService = HttpClient;
        _appSetting = AppSettings;
        this._logger = logger;
    }
    
    public bool ValidateToken(string token)
    {
        var tokenHandler = new JwtSecurityTokenHandler();

        try
        {
            tokenHandler.ValidateToken(token, new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                ValidateIssuer = true,
                ValidateAudience = false,
                ValidateLifetime = true,
                ValidIssuer = _appSetting.Value.Jwt.Issuer,
                ValidAudience = _appSetting.Value.Jwt.Audience,
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSetting.Value.Jwt.Key)),
                ClockSkew = TimeSpan.Zero
            }, out SecurityToken validatedToken);
        }
        catch (Exception ex)
        {
            // this where I want to log an exception but it is not working .. and always log me an error in the txt file generated in c:\temp folder 
            this._logger.LogError($"---- Token Error ----", ex.Message);
            return false;
        }

        return true;
    }
}

txt文件中的错误日志

代码语言:javascript
运行
AI代码解释
复制
2021-10-26 13:38:28.8797 Info Message Template Auto Format enabled
2021-10-26 13:38:28.8797 Info Loading assembly: NLog.Web.AspNetCore
2021-10-26 13:38:28.9069 Info Adding target DatabaseTarget(Name=database)
2021-10-26 13:38:28.9335 Info Validating config: TargetNames=database, ConfigItems=33, FilePath=C:\Kamran  Don't Delete\SAUFIK\Project Files\GMD\GMDAPI\GMDApi\bin\Debug\net5.0\NLog.config
2021-10-26 13:38:28.9582 Info Configuration initialized.
2021-10-26 13:38:28.9582 Info NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 4.7.9.12899. Product version: 4.7.9+e8712e62842e2d74d60fdf37cf74d743750e5ca2. GlobalAssemblyCache: False

上面的错误是在出现异常但数据库中没有我不知道的情况下登录到默认的txt文件中的,可能是我的UserProfileinfo类有问题。

EN

回答 1

Stack Overflow用户

发布于 2021-10-26 09:58:49

日志记录规则决定了记录器输出应该写入的位置。您的日志记录规则规定,只有名为database的日志记录器才应该写入database-target:

代码语言:javascript
运行
AI代码解释
复制
<rules>
   <logger name="database" minlevel="error" writeto="database" />
</rules>

但是在您的代码中,您使用的是基于typeof(UserProfileInfo).Name的记录器名称ILogger<UserProfileInfo>

如果您只想让所有错误独立于记录器名称,那么只需使用*-wildcard:

代码语言:javascript
运行
AI代码解释
复制
<rules>
   <logger name="*" minlevel="error" writeto="database" />
</rules>

另请参阅:https://github.com/NLog/NLog/wiki/Tutorial

另请参阅:https://github.com/nlog/NLog/wiki/Configuration-file#rules

另请参阅:https://github.com/NLog/NLog.Extensions.Logging/wiki/NLog-GetCurrentClassLogger-and-Microsoft-ILogger

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69722257

复制
相关文章
ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2019/04/12
1.7K0
ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
Asp.Net Core使用NLog+Mysql的几个小问题
项目中使用NLog记录日志,很好用,之前一直放在文本文件中,准备放到db中,方便查询。 项目使用了Mysql,所以日志也放到Mysql上,安装NLog不用说,接着你需要安装Mysql.Data安装包: Install-Package MySql.Data 接着打开你的NLog,新增一个target: <target xsi:type="Database" name="mysqlDb" dbProvider="MySql.Data.MySqlClient.MySqlConnection, My
脑洞的蜂蜜
2018/07/04
1.3K0
Workflow Core + asp.net core 5.0 实现简单审批工作流
我们知道企业业务系统到处都可以审批工作流的,但也很少有像OA系统一样复杂多级多条件的审批工作流需要设计,所以我们需要一个轻量级的容易上手的workflow框架,通过GitHub,我发现danielgerlag/workflow-core 就非常合适,我下面我通过自己的一个开源项目利用Workflow core开发了一个文档审批工作流的原型,也算是我开源项目中的一个重要模块
阿新
2021/09/07
5.3K0
ASP.NET Core里让NLog根据环境加载配置文件
我们知道ASP.NET Core自带了appsettings.环境名.json,天生就能做到根据不同的环境选择不同的配置文件。但是NLog的官方例子里只有一份nlog.config,如何根据不同环境加载不同配置呢?
Edi Wang
2019/07/09
2.2K0
ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB
  在项目开发中,日志系统是系统的一个重要组成模块,通过在程序中记录运行日志、错误日志,可以让我们对于系统的运行情况做到很好的掌控。同时,收集日志不仅仅可以用于诊断排查错误,由于日志同样也是大量的数据,通过对这些数据进行集中分析,可以产生极大的价值。   在微服务的系统架构中,由于一个系统会被拆成很多个功能模块,每个模块负责不同的功能,对于日志系统的要求也会更高,比较常见的有 EFLK(ElasticSearch + Filebeat + LogStash + Kibana) 方案,而对于我们这种单体应用来说,由于程序的代码比较集中,所以我们主要采用手写日志帮助类或是使用第三方组件的形式进行日志信息的记录。
程序员宇说
2019/09/11
1.7K0
ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB
NLog配置分享
新建一个文件命名为NLog.Config,然后添加如下代码 <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-p
晓晨
2018/06/22
7350
.NET Core使用NLog通过Kafka实现日志收集
NET Core越来越受欢迎,因为它具有在多个平台上运行的原始.NET Framework的强大功能。Kafka正迅速成为软件行业的标准消息传递技术。这篇文章简单介绍了如何使用.NET(Core)和Kafka实现NLog的Target。
yoyofx
2018/09/05
1.8K0
.NET Core使用NLog通过Kafka实现日志收集
ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件
  应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用。   ASP.NET Core提供了内置的日志,但没弄明白这么把它输出到文件, 只能在VS的输出中查看, 谁知道怎么弄告诉我一下。(ASP.NET Core 系列目录) 本例 GitHub 一、内置日志的使用   上一篇:如何在后台运行一个任务  中使用到了内置的日志,直接在构造中注入一下,然后直接使用即可, 非常方便
FlyLolo
2018/07/03
1.6K0
ASP.NET Core 5.0 MVC 视图组件的用法
视图组件与分部视图类似,但它们的功能更加强大。 视图组件不使用模型绑定,并且仅依赖调用时提供的数据。它也适用于 Razor 页。
明志德道
2023/10/21
2850
ASP.NET Core 5.0 MVC 视图组件的用法
Logging with ElasticSearch, Kibana, ASP.NET Core and Docker
言归正传,本文聊一聊在ASP.NET Core3.1中集成ElasticSearch、Kibana日志查询系统。
有态度的马甲
2020/07/22
1.4K0
Logging with ElasticSearch, Kibana, ASP.NET Core and Docker
迈向企业级核心场景的 TiDB 5.0
随着 2021 年春天的来临和 PingCAP 年满 6 周岁纪念日的到来,TiDB 5.0 迎来正式 GA。经过近一年紧锣密鼓的开发和打磨,TiDB 5.0 成为迈向企业级核心场景的里程碑版本:TiDB 5.0 的性能和稳定性得到显著提升,从而具备更强大的 OLTP 金融级核心场景的服务能力;在原有 HTAP 引擎 TiFlash 的基础上引入 MPP 架构,TiDB 使得众多企业的实时/交互式 BI 成为现实,为高成长企业和数字化创新场景提供了一栈式的数据服务底座,加速带动 HTAP 进入更多大型企业的数字化场景。
PingCAP
2021/04/09
6290
迈向企业级核心场景的 TiDB 5.0
性能工具之JMeter5.0核心源码浅析
周末无聊看了下 JMeter5.0 的源码,本文就当做个小结,水平有限,如有理解不到位或错误的的地方,望大家指出,谢谢。
高楼Zee
2019/07/17
2K0
性能工具之JMeter5.0核心源码浅析
NLog日志框架简写用法
本文转载:http://www.blogjava.net/qiyadeng/archive/2013/02/27/395799.html
跟着阿笨一起玩NET
2018/09/19
1.1K0
NLog日志框架简写用法
Spring5.0源码深度解析之Spring核心注解
1.为什么要使用@Import注解?Import注解的主要作用的将外部的jar包注入到springioc容器中
须臾之余
2019/07/30
7660
Spring5.0源码深度解析之Spring核心注解
.NET Core 学习资料精选:入门
本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.NET Core。
梁规晓
2019/07/24
3.9K0
.NET Core 学习资料精选:入门
ASP.NET Core 5.0 MVC中的 Razor 页面 介绍
Razor 是一个用于将基于服务器的代码嵌入到网页中的标记语法。 Razor语法由 Razor 标记、c # 和 HTML 组成。 通常包含 Razor 的文件的扩展名 cshtml
明志德道
2023/10/21
5120
NLog 在NetCore中实现多实例注入DI, 实现多租户模式
通常, 我们在使用了 Microsoft.Extensions.DependencyInjection DI框架的情况下, 我们一般通过
旺财的城堡
2020/12/02
1.1K0
使用 AgileConfig 动态配置 NLog
NLog 是我们在 .NET 领域使用非常广泛的日志组件。它默认使用 xml 来维护它的配置。最近有几个同学问我当使用 AgileConfig 的时候如何配置 NLog 。因为 AgileConfig 不支持集成 xml 格式的配置。其实 NLog 是支持从 appsettings.json / IConfiguration 读取配置的,那么肯定跟我们的 AgileConfig 集合是没有问题的。以下介绍下 NLog 如何跟 AgileConfig 进行集成,以及支持动态化的配置。
MJ.Zhou
2022/05/18
7420
使用 AgileConfig 动态配置 NLog
Asp.Net Core NLog 将日志输出到数据库以及添加LayoutRenderer的支持
在这之前打算用Apache的Log4Net,但是发现其AdoNetAppender方法已经不存在了,无法使用配置文件直接输出到数据库了,因此我便改用了NLog框架。
HueiFeng
2020/02/12
1.4K0
Asp.Net Core NLog 将日志输出到数据库以及添加LayoutRenderer的支持
核心商城系统coreshop
gitee地址:https://gitee.com/CoreUnion/CoreShop
JusterZhu
2022/12/07
2.9K0
核心商城系统coreshop

相似问题

带DNX核心5.0的NLog

32

AspNet核心5.0和注册自定义NLog LayoutRenderer

255

在DelegatingHandler核心5.0WebAPI中实现ASP.NET?

23

NLog nlog.config for asp.net核心重复规则

11

为asp.net核心2.02配置Nlog

134
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文