.NET Core下使用Log4Net记录日志的方法步骤

2025-05-29 0 26

Log4Net 相信大家都很熟悉了,算是比较主流和著名的日志组件了。

官网: logging.apache.org

开源地址: https://github.com/apache/logging-log4net

最佳实践

在项目中添加组件包

?

1
Install-Package log4net

添加 log4net.config 文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64
<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

</configSections>

<log4net debug="false">

<appender name="info" type="log4net.Appender.RollingFileAppender,log4net">

<param name="File" value="log4net/info/" />

<param name="AppendToFile" value="true" />

<param name="MaxSizeRollBackups" value="-1"/>

<param name="MaximumFileSize" value="5MB"/>

<param name="RollingStyle" value="Composite" />

<param name="DatePattern" value="yyyyMMdd\\\\HH&quot;.log&quot;" />

<param name="StaticLogFileName" value="false" />

<layout type="log4net.Layout.PatternLayout,log4net">

<param name="ConversionPattern" value="%n

{

&quot;system&quot;: &quot;Meowv.Blog&quot;,

&quot;datetime&quot;: &quot;%d&quot;,

&quot;description&quot;: &quot;%m&quot;,

&quot;level&quot;: &quot;%p&quot;,

&quot;info&quot;: &quot;%exception&quot;

}" />

</layout>

<filter type="log4net.Filter.LevelRangeFilter">

<levelMin value="INFO" />

<levelMax value="INFO" />

</filter>

</appender>

<appender name="error" type="log4net.Appender.RollingFileAppender,log4net">

<param name="File" value="log4net/error/" />

<param name="AppendToFile" value="true" />

<param name="MaxSizeRollBackups" value="-1"/>

<param name="MaximumFileSize" value="5MB"/>

<param name="RollingStyle" value="Composite" />

<param name="DatePattern" value="yyyyMMdd\\\\HH&quot;.log&quot;" />

<param name="StaticLogFileName" value="false" />

<layout type="log4net.Layout.PatternLayout,log4net">

<param name="ConversionPattern" value="%n

{

&quot;system&quot;: &quot;Meowv.Blog&quot;,

&quot;datetime&quot;: &quot;%d&quot;,

&quot;description&quot;: &quot;%m&quot;,

&quot;level&quot;: &quot;%p&quot;,

&quot;info&quot;: &quot;%exception&quot;

}" />

</layout>

<filter type="log4net.Filter.LevelRangeFilter">

<levelMin value="ERROR" />

<levelMax value="ERROR" />

</filter>

</appender>

<root>

<level value="ALL"></level>

<appender-ref ref="info"/>

<appender-ref ref="error"/>

</root>

</log4net>

</configuration>

控制台项目

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25
using log4net;

using log4net.Config;

using System;

using System.IO;

using System.Reflection;

namespace ConsoleAppDemo

{

class Program

{

static void Main(string[] args)

{

var log4netRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

XmlConfigurator.Configure(log4netRepository, new FileInfo("log4net.config"));

ILog log = LogManager.GetLogger(log4netRepository.Name, "NETCorelog4net");

log.Info("NETCorelog4net log");

log.Info("test log");

log.Error("error");

log.Info("linezero");

Console.ReadKey();

}

}

}

.NET Core下使用Log4Net记录日志的方法步骤

AspNetCore项目

新建一个静态类,写一个扩展方法 UseLog4Net() ,用于 log4net 初始化。

?

1

2

3

4

5

6

7

8

9

10
public static class Log4NetExtensions

{

public static IHostBuilder UseLog4Net(this IHostBuilder hostBuilder)

{

var log4netRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

XmlConfigurator.Configure(log4netRepository, new FileInfo("log4net.config"));

return hostBuilder;

}

}

扩展方法返回 IHostBuilder 对象,这样可以链式调用,美化代码,然后在 Program.cs 中使用扩展方法 UseLog4Net()

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
using Microsoft.AspNetCore.Hosting;

using Microsoft.Extensions.Hosting;

namespace WebAppDemo

{

public class Program

{

public static void Main(string[] args)

{

CreateHostBuilder(args).Build().Run();

}

public static IHostBuilder CreateHostBuilder(string[] args) =>

Host.CreateDefaultBuilder(args)

.ConfigureWebHostDefaults(webBuilder =>

{

webBuilder.UseStartup<Startup>();

}).UseLog4Net();

}

}

配置完成,然后在任意地方写入日志即可。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42
using log4net;

using Microsoft.AspNetCore.Mvc;

using System;

using System.Collections.Generic;

using System.Linq;

namespace WebAppDemo.Controllers

{

[ApiController]

[Route("[controller]")]

public class WeatherForecastController : ControllerBase

{

private static readonly string[] Summaries = new[]

{

"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"

};

private readonly ILog _log;

public WeatherForecastController()

{

_log = LogManager.GetLogger(typeof(WeatherForecastController));

}

[HttpGet]

public IEnumerable<WeatherForecast> Get()

{

_log.Info("Hello, this is a Weather api!");

_log.Warn("Wran !!!");

_log.Error("Controller Error");

var rng = new Random();

return Enumerable.Range(1, 5).Select(index => new WeatherForecast

{

Date = DateTime.Now.AddDays(index),

TemperatureC = rng.Next(-20, 55),

Summary = Summaries[rng.Next(Summaries.Length)]

})

.ToArray();

}

}

}

.NET Core下使用Log4Net记录日志的方法步骤

到此这篇关于.NET Core下使用Log4Net记录日志的方法步骤的文章就介绍到这了,更多相关.NET Core Log4Net内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://juejin.im/post/6875848186259472391

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 .NET Core下使用Log4Net记录日志的方法步骤 https://www.kuaiidc.com/97250.html

相关文章

发表评论
暂无评论