在ASP.NET CORE中使用Log4Net

前言:Log4Net同样是Apache下的日志框架,在.net整个系列上基本上都可以使用。API也和其他的日志框架(log4j)相似,所以学习上手非常快。

1.直接安装NuGet依赖包

请添加图片描述

2.在StartUp中进行配置

配置方法也很简单,

public void ConfigureServices(IServiceCollection services)
 {
	 //使用AddLog4Net方法加载你的配置文件即可
     services.AddLogging(cfg => { cfg.AddLog4Net("log4net.config"); });
     services.AddControllers();
     services.AddSwaggerGen(c =>
     {
         c.SwaggerDoc("v1", new OpenApiInfo { Title = "Log4NetSample", Version = "v1" });
     });
 }

完成log4net的xml配置文件,命名为log4net.config(注:不要保存为xml,vs中默认以.config代替.xml)

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
	<!--定义一个appender用于将日志记录到文件-->
	<appender name="All" type="log4net.Appender.RollingFileAppender">
		<file value="\XXXX\Log4NetSample\Sample.log" />
		<appendToFile value="true" />
		<rollingStyle value="Composite" />
		<datePattern value="_yyyy-MM-dd.log" />
		<maximumFileSize value="5MB" />
		<maxSizeRollBackups value="15" />
		<staticLogFileName value="false" />
		<PreserveLogFileNameExtension value="true" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
		</layout>
	</appender>
	<!--引用上面定义的appender -->
	<root>
		<appender-ref ref="All" />
	</root>
</log4net>

3.直接在程序中使用

使用方式大体可以分为,构造函数注入日志器,和静态工厂获取
后者就和Java中著名的slf4j日志门面提供的API差不多,从工厂中获取logger

//工厂获取Java日志
final static Logger logger = LoggerFactory.getLogger(MyLogTest.class);
//工厂获取C#日志
readonly static ILog logger = LogManager.getLogger(typeof(MyClass));

构造函数注入(ASP.NET OCRE原生日志的使用方式):

需要注意的是,这里不需要在配置Controller的IOC时手动操作这些logger参数,
ASP.NET CORE会在创建Controller时自动注入这些ILogger参数,和上面的方法一样,也可以算开箱即用。

public class TestController{

	private ILogger<TestController> logger;

	public TestController(ILogger<TestController> logger){
		this.logger = logger;
		}

 [HttpGet]
 public string LoggingTag(string str)
  {
      logger.LogInformation("you are logging {0}", str);
      return "wtf";
  }

调用这个接口,查看相应的日志记录
请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗马苏丹默罕默德

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值