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

namespace LogStudy.WebApp.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class LogController : ControllerBase
    {
        private ILogger logger;
        public LogController(ILogger<LogController> logger)
        {
            this.logger = logger;
        }

        [HttpGet]
        [HttpPost]
        public IActionResult Index()
        {
            logger.LogTrace("EventSource 提供程序");
            logger.LogError(new EventId(222, "EWT测试"), "EWT错误{id}", 222);
            logger.LogDebug("LogDebug");
            logger.LogInformation("LogInformation");
            logger.LogWarning("LogWarning");
            logger.LogError("LogError");
            logger.LogCritical("LogCritical");

            return new JsonResult(new { Code=0, Message="日志记录成功" });
        }

        [HttpGet]
        [HttpPost]
        public IActionResult NoDI()
        {
            var  loggerFactory = new LoggerFactory().AddConsole();
            var logger2 = loggerFactory.CreateLogger<LogController>();

            logger2.LogTrace("LogTrace");
            logger2.LogDebug("LogDebug");
            logger2.LogInformation("LogInformation");
            logger2.LogWarning("LogWarning");
            logger2.LogError("LogError");
            logger2.LogCritical("LogCritical");


            return new JsonResult(new { Code = 0, Message = "日志记录成功" });
        }
    }
}