【发布时间】:2019-11-15 05:39:20
【问题描述】:
我正在尝试使用 NLog 将错误记录到数据库表中,但没有记录被写入数据库。我在这里错过了什么?
Startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IHttpContextAccessor httpContextAccessor,
IOptions<MailSettings> mailConfig, IOptions<ApplicationSettings> applicationSettings, ILoggerFactory loggerFactory)
{
app.UseMvc();
GlobalDiagnosticsContext.Set("connectionString", ConnectionString.Connection);//Set the database connection string
loggerFactory.AddNLog();
}
}
然后我创建了如下数据库表
CREATE TABLE [dbo].[Log] (
[Id] [int] IDENTITY(1,1) NOT NULL,
[Application] [nvarchar](50) NOT NULL,
[Logged] [datetime] NOT NULL,
[Level] [nvarchar](50) NOT NULL,
[Message] [nvarchar](max) NOT NULL,
[Logger] [nvarchar](250) NULL,
[Callsite] [nvarchar](max) NULL,
[Exception] [nvarchar](max) NULL,
CONSTRAINT [PK_dbo.Log] PRIMARY KEY CLUSTERED ([Id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
并尝试在此处记录一些错误。
public class ValuesController : ControllerBase
{
private readonly ILogger _logger;
public ValuesController(ILogger<ValuesController> logger)
{
_logger = logger;
}
// GET api/values
[HttpGet]
public async Task<ActionResult<IEnumerable<string>>> GetAsync()
{
_logger.LogError("just test");
}
}
【问题讨论】:
标签: c# asp.net-core nlog core-api