【c#】LOG4NET||NLog记录日志的用法

Log4net,Nlog都是用于记录日志的作用;
【c#】LOG4NET||NLog记录日志的用法_第1张图片

1、安装插件:

lognet: log4net、Microsoft.Extensions.Logging.Log4Net.AspNetCore
nlog:nlog

2、 配置log4net/nlog .config文件

如果安装插件没有生成的话,需要自己在项目中新建一个web.config文件,以下配置文件代码
NLog配置文件

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<targets>
		<target name="file" xsi:type="File"
			fileName="${basedir}\PsTest.log"
			layout="${longdate} | ${level:uppercase=true}: ${message} | ${stacktrace}"
			maxArchiveFiles="3"
			archiveAboveSize="10240"
			encoding="utf-8"/>
	</targets>

	<rules>
		<logger name="*" minlevel="Debug" writeTo="file"></logger>
	</rules>
</nlog>


LOG4NET配置文件

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
	<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
		<!--日志路径-->
		<param name="File" value="Logs\\" />
		<!--是否是向文件中追加日志-->
		<param name= "AppendToFile" value= "true"/>
		<!--log保留天数-->
		<param name= "MaxSizeRollBackups" value= "30"/>
		<!--日志文件名是否是固定不变的-->
		<param name= "StaticLogFileName" value= "false"/>
		<!--日志文件名格式为:2008-08-31.log-->
		<param name= "DatePattern" value= "yyyy-MM-dd".read.log""/>
		<!--日志根据日期滚动-->
		<param name= "RollingStyle" value= "Date"/>
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="%n==========%n【日志级别】:%-5level%n【记录时间】:%date %n【执行时间】:[%r]毫秒%n【信息详情】%message%n" />
		</layout>
	</appender>

	<!-- 控制台前台显示日志 -->
	<appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
		<mapping>
			<level value="ERROR" />
			<foreColor value="Red" />
		</mapping>
		<mapping>
			<level value="WARN" />
			<foreColor value="Yellow" />
		</mapping>
		<mapping>
			<level value="INFO" />
			<foreColor value="White" />
		</mapping>
		<mapping>
			<level value="DEBUG" />
			<foreColor value="Green" />
		</mapping>
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%d{ABSOLUTE} [%thread] %-5p %c{1}:%L - %m%n" />
		</layout>
	</appender>

	<root>
		<!--() OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL ()-->
		<level value="all" />
		<appender-ref ref="ManagedColoredConsoleAppender"/>
		<appender-ref ref="RollingLogFileAppender"/>
	</root>
</log4net>

二者都需要修改配置config属性,右键属性:复制到输出目录—》始终复制

3、在项目中的代码配置:

Log4net
1、在program.cs文件中,修改:

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)   //添加log4net
             .ConfigureLogging((context, loggingBuilder) =>
             {
             	
                 loggingBuilder.AddFilter("System", LogLevel.Warning);
                 loggingBuilder.AddFilter("Microsoft", LogLevel.Warning);
                 loggingBuilder.AddLog4Net();//配置文件,如果名字叫log4net.config,在根目录则可以不指定路径
             })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();

                });

2、在controller文件中

private readonly ILogger<HomeController> _logger;

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


        public IActionResult LogTest()
        {
            _logger.LogError("LOG测试");
            return View();
        }

Nlog的使用:

	 //NLOG记录应用
        //public static void NlogTest()
        //{
        //    //通过NLog.LogManager.GetCurrentClassLogger方法可以创建一个与所在类同名(包括 namespace)的 NLog.Logger 的实例。
        //    var logger = LogManager.GetCurrentClassLogger();
        //    logger.Error("something Error!");
        //    logger.Info("something Info!");
        //    logger.Debug("something Debug!");
        //    try
        //    {
        //        List ls = null;
        //        //var c = ls.Count;
        //    }
        //    catch (Exception ex)
        //    {
        //        logger.Error(ex.Message);
        //    }
        //}

记录日志的路径是在config文件中的路径,结果如图:
【c#】LOG4NET||NLog记录日志的用法_第2张图片

你可能感兴趣的:(c#,c#)