标签: ms-extensions-logging

在ASP.NET Core应用程序中使用NLog

我找到了一个CodeProject,其中有一个如何使其工作的示例,但它不起作用.主要问题似乎是"Microsoft.Framework.Logging.NLog": "1.0.0-*"Nuget中似乎不存在包.我查看了这个StackOverflow问题并查看了它引用的GitHub示例,但它似乎包含相同的问题.

我试图让它自己工作,我提出的最好的是以下内容:

public class NLogLogger : ILogger
{
    public NLogLogger()
    {
        new WebLoggerConfigurer().ConfigureDefault();
    }

    public void Log(LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter)
    {
        // currently need the global:: for LogLevels because our namespace contains NLog in it. Is there a better naming convention we could use instead?
        var ll = logLevel == LogLevel.Debug ? global::NLog.LogLevel.Debug
                : logLevel == LogLevel.Verbose ? global::NLog.LogLevel.Trace
                : logLevel == LogLevel.Critical ? global::NLog.LogLevel.Fatal …
Run Code Online (Sandbox Code Playgroud)

nlog asp.net-core ms-extensions-logging

28
推荐指数
3
解决办法
3万
查看次数

netcore没有登录到控制台

我有一个简单的测试项目,尝试使用Microsoft Logging Extensions包测试NetCore 2.0.

我遇到的问题是,当我第一次运行我的应用程序时,它会按预期记录信息性消息.我遇到的奇怪行为是后续运行根本不会产生任何消息.

我的项目面向Net Core 2.0框架,并安装了以下NuGet包:

  • Microsoft.Extensions.Logging
  • Microsoft.Extensions.Logging.Abstractions
  • Microsoft.Extensions.Logging.Console
  • Microsoft.Extensions.Logging.Debug

下面是我的示例代码我正在尝试使用以下日志:

using System;

namespace LoggingNetCore2
{
    using Microsoft.Extensions.Logging;

    class Program
    {
        static void Main(string[] args)
        {
            var loggerFactory = new LoggerFactory();
            loggerFactory.AddConsole();
            loggerFactory.AddDebug(); // <-- why is this needed for console logging?

            var logger = loggerFactory.CreateLogger(typeof(Program));
            logger.LogInformation("Hello, World!");
            logger.LogTrace("trace");
            logger.LogDebug("debug");
            logger.LogWarning("warning");
            logger.LogCritical("critical");
            logger.LogError("errrrr");

            //using (logger.BeginScope("MyMessages"))
            //{
            //    logger.LogInformation("Beginning Operation...");
            //    logger.LogInformation("Doing something cool... please wait.");
            //    logger.LogInformation("Completed successfully.");
            //}
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行上面的操作时,我在控制台窗口上没有输出.任何可能会发生什么的想法都会浮现在脑海中?

我试过的事情:

  • 添加了Microsoft.Extensions.Logging.Abstractions包,因为我模糊地记得过去需要在NetCore 1.0应用程序中这样做. …

logging ms-extensions-logging .net-core-2.0

13
推荐指数
1
解决办法
3962
查看次数

简单注入器:使用ILoggerFactory.CreateLogger注册ILogger <T> <T>()

我正在使用一个利用Simple Injector作为依赖注入器的项目.另一方面,该项目使用Microsoft.Extensions.Logging来记录某些类中发生的事件.

我的技术问题很容易解释.我想在我的DI中注册ILogger独立于正在调用的类T,但我需要从我的ILoggerFactory.CreateLogger<T>()方法中执行它,因为这将使用记录器配置Microsoft.Extensions.Configuration.

我需要使用这样的东西来实例我的记录器:

private Microsoft.Extensions.Logging.ILogger CreateLogger<T>()
{
     var factory = this.ResolveService<ILoggerFactory>();
     var logger = factory.CreateLogger<T>();
     return logger;
}
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式实现注射:

Container.Register(typeof(ILogger<>), typeof(Logger<>));
Run Code Online (Sandbox Code Playgroud)

这使我们可以解决类似的问题:

public class SomeApiController : ApiController
{
     public SomeApiController(ILogger<SomeApiController> logger)
     {
         //logger is well instantiated, but doesn't got the configuration
         logger.LogInformation("test log.");
     }
}
Run Code Online (Sandbox Code Playgroud)

但正如我所说,这样做不会通过从Microsoft.Extensions.Logging.ILoggerFactory类中获得的配置,所以这没用.

有没有办法ILogger<T>使用我的注册CreateLogger<T>

c# dependency-injection simple-injector ms-extensions-logging

12
推荐指数
2
解决办法
5291
查看次数

Asp.Net 5(核心)RC1:如何登录文件(滚动文件记录)[DNX Core 5兼容解决方案]?

如何在Asp.Net 5 RC1中登录文件?我找不到Microsoft.Extensions.Logging的任何解决方案.有没有与.Net Core 5(DNX Core 5.0)兼容的解决方案?我也试图使用Serilog,但Serilog还不支持核心5.

asp.net logging dnx asp.net-core ms-extensions-logging

6
推荐指数
1
解决办法
4351
查看次数

asp.net mvc core以下方法或属性之间的调用不明确:

我正在处理一个应用程序,我在Startup.cs部分类中遇到错误,我无法找到为什么会出现此错误:

以下方法或属性之间的调用不明确:Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action)Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection) ,System.Action)

我的两个部分Startup.cs类是

using Microsoft.Extensions.DependencyInjection;
using System.Security.Claims;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;


namespace GiftUWish.WebAPI
{
    public partial class Startup
    {
        private void SetServices(IServiceCollection services)
        {
            //PROFILE service and repository
            services.AddScoped<IProfileService, ProfileService>();
            services.AddScoped<IProfileRepository, ProfileRepository>();

            ////GIFT service and repository
            services.AddScoped<IBankAccountService, BankAccountService>();
            services.AddScoped<IBankAccountRepository, BankAccountRepository>();

            //EVENT service and repository
            services.AddScoped<ICreditCardService, CreditCardService>();
            services.AddScoped<ICreditCardRepository, CreditCardRepository>();


            //CREDIT CARD INFORMATION serice and repository
            services.AddScoped<IPayPalService, PayPalService>();
            services.AddScoped<IPayPalRepository, PayPalRepository>();

            //CHIPPED IN serive and repository
            services.AddScoped<IShippingAdressService, ShippingAdressService>();
            services.AddScoped<IShippingAdressRepository, ShippingAdressRepository>();

            //UNIT OF WORK
            services.AddScoped<IUnitOfWork, UnitOfWork>();

            //Authentication-Token , Header which contains information about …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-1.0 ms-extensions-logging

4
推荐指数
1
解决办法
3922
查看次数

ASP.NET 5:如何在Microsoft.Extensions.Logging中配置日志路径

我正在开发一个MVC6 Web应用程序,我是ASP.NET 5的新手.我可以看到Logging(Microsoft.Extensions.Logging)在ASP.NET 5中的许多地方(例如:AccountController.cs)使用默认的Web应用程序模板,但我无法弄清楚在何处配置创建的日志文件的路径.以下设置位于appsettings.json文件中.

"Logging": {
"IncludeScopes": false,
"LogLevel": {
  "Default": "Verbose",
  "System": "Information",
  "Microsoft": "Information"
}  }
Run Code Online (Sandbox Code Playgroud)

在本节中添加参数是否足够?如果是,参数名称是什么?如果没有,该怎么办?

以前我使用Log4Net,配置是在logger.config文件中完成的.

asp.net-core-mvc asp.net-core ms-extensions-logging

3
推荐指数
1
解决办法
6100
查看次数

Microsoft.Extensions.Logging的记录器包装器的实现和使用

这个问题与史蒂文的答案有关 - 这里.他提出了一个非常好的记录器包装器.我将在下面粘贴他的代码:

public interface ILogger
{
    void Log(LogEntry entry);
}

public static class LoggerExtensions
{
    public static void Log(this ILogger logger, string message)
    {
        logger.Log(new LogEntry(LoggingEventType.Information,
            message, null));
    }

    public static void Log(this ILogger logger, Exception exception)
    {
        logger.Log(new LogEntry(LoggingEventType.Error, 
            exception.Message, exception));
    }

    // More methods here.
}
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是创建代理Microsoft.Extensions.Logging的实现的正确方法什么,以及在代码中稍后使用它的最佳方法是什么

注意:此问题是关于log4net此问题的副本,但现在特定于Microsoft.Extensions.Logging.

.net c# logging ms-extensions-logging

3
推荐指数
1
解决办法
5908
查看次数