一 dotnet项目起步(创webapi ,控制器hello world ,配日志log4net)

91 阅读1分钟

一 startup

1.1 安装dotnet6 webapi 项目。

使用vs studio 创建项目 。 image.png

1.2 控制器,hello world

controller 目录下,创建UserController

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication1.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class UserController : ControllerBase
    {
        [HttpGet]
        public string Get()
        {
            return "hello world";
        }

    }
}

运行一下。 使用swagger

image.png

1.3 配log4Net 日志。

讲个段子,面向日志开发。 (通过日志分析,定位问题)

1.3.1 依赖项 》 管理Nuget程序包 搜log4Net 安装。

image.png

1.3.2 设置配置

logging.apache.org/log4net/ind… 官网抄例子,这里创建文件日志。

<?xml version="1.0" encoding="utf-8"?>
<log4net>
	<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
		<file value="log4\log.txt" />
		<!---->	
	
		<appendToFile value="true" />
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
		<rollingStyle value="Composite" />
		<datePattern value="yyyyMMdd.txt" />
		<maxSizeRollBackups value="20" />
		<maximumFileSize value="1MB" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
		</layout>
	</appender>

	<root>
		<level value="INFO" />
		<appender-ref ref="rollingAppend" />
	</root>
</log4net>

1.3.3 注入,并使用。

//program.cs 注入
builder.Logging.AddLog4Net("CfgFile/log4net.Config");

//控制器,注入日志,使用使用。
namespace WebApplication1.Controllers
{


    [Route("api/[controller]")]
    [ApiController]
    public class UserController : ControllerBase
    {

        //注入
        private readonly ILogger<UserController> _logger;
        public UserController(ILogger<UserController> logger)
        {
            _logger = logger;
        }


        [HttpGet]
        [Route("api/[controller]/hello")]
        public string Get()
        {
            //使用。
            _logger.LogInformation("hello world2222");
            return "hello world";
        }

    }
}

运行后,查看效果 。

image.png