首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ILogger :日志方法:无法发送用户定义的变量

ILogger :日志方法:无法发送用户定义的变量
EN

Stack Overflow用户
提问于 2019-02-23 08:34:29
回答 1查看 563关注 0票数 1

我有一个现有的项目中使用NLog。因此,我已经在现有项目中编写了debug/warn方法。

现在扩展该项目。在新项目中,我想使用Microsoft.Extensions.Logging.ILogger

我尝试使用现有的代码,而不是从头开始编写。类似于:

代码语言:javascript
复制
   public void Log<TState>(Microsoft.Extensions.Logging.LogLevel logLevel, EventId eventId, LogInfo logInfo, Exception exception, Func<TState, Exception, string> formatter)
    {
        NLog.ILogger logger = null; 

       if (logLevel == Microsoft.Extensions.Logging.LogLevel.Debug)
        {
            logger.Debug(logInfo, logLevel );
        }

    }

LogInfo是用户定义的类。我不能这样做,因为方法被定义为

代码语言:javascript
复制
public void Log<TState>(Microsoft.Extensions.Logging.LogLevel logLevel, EventId eventId, TState logInfo, Exception exception, Func<TState, Exception, string> formatter)

现在,如何将logInfo传递给该方法?任何关于Tstate的优秀文档也将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-02-27 02:56:57

就像蛇脚所说的,

如果您喜欢在NLog中使用ILogger注入,您可以使用

对于ASP.NET核心应用程序,请参阅ASP.NET Core with NLog tutorial

如果设置得当,您可以执行以下操作:

代码语言:javascript
复制
_logger.LogInformation("Log message with {simpleText} and {@complexObject}", myString, myObject);

并使用${message}和/或${event-properties:simpleText} / ${event-properties:complexObject}捕获它们。参见How to use structured logging

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

https://stackoverflow.com/questions/54837011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档