.Net 日志系统-Windows日志

Windows日志的查看方法:

.Net Core程序记录日志到Windows日志中,下面用代码来演示如何实现:

基于.Net Core WebApi 3.1程序

1.NuGet应用程序集:Microsoft.Extensions.Logging.EventLog

2.依赖注入:

 在Startup.cs文件的ConfigureServices类中,将EventLog注入到服务中。

            //注入EventLog
            services.AddLogging(logBulid=> {
                logBulid.AddEventLog();
            });

 

3.在需要记录日志的代码,注入ILogger<T> 即可,T一般就是当前类的类名称,这个类的名字会输出到日志,方便定位问题。然后调用LogWarning()、LogError()等方法输出不同级别的日志。

 

 完整代码:

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WindowsLog.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet]
        public void Get()
        {
            _logger.LogDebug("我是Debug信息");
            _logger.LogInformation("我是info信息");
            _logger.LogWarning("我是Warning信息");
            _logger.LogError("我是error信息");
            _logger.LogCritical("我是Critical信息");
        }
    }
}

执行结果:

 

这里只记录了LogWarning、LogError、LogCritical三个级别的日志,其他的LogDebug、LogInformation等没有被记录到Windows日志中,这里目前我还不知道是什么原因。

我想到的是设置日志记录的级别,通过设置最小级别为Trace后,输出的日志仍没有LogDebug、LogInformation。也可能是Windows日志只能记录到Warning级别吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值