.net core 杂记: 日记记录
ASP.NET Core 有内置的 log 组件, 遗憾的是看了微软官方文档, 貌似无法直接将日志存于文件或数据库, 只能由自己实现或引用第三方日志组件.
以下为 Nlog 和 log4net 的使用记录
Nlog 使用 搜索添加 Nuget 包
- Nlog
- Nlog.web.AspNetCore
新建一个 xml 文件, 并改名为 nlog.config
xml 内容如下 (可配置日志目录名称, 输出格式):
<?xml version="1.0" encoding="utf-8" ?-->
将 nlog.config 设置输出到目录 在 Startup 类中配置
需要引入命名空间:
- using NLog.Extensions.Logging;
- using NLog.Web;
- public void Configure(IApplicationBuilder App, IHostingEnvironment env, ILoggerFactory loggerFactor)
- {
- // 使用 Nlog
- loggerFactor.AddNLog();
- // 引入配置文件
- env.ConfigureNLog("nlog.config");
- if (env.IsDevelopment())
- {
- App.UseDeveloperExceptionPage();
- }
- else
- {
- App.UseExceptionHandler("/Error");
- }
- App.UseStaticFiles();
- App.UseCookiePolicy();
- App.UseMvc();
- }
代码中的使用
有两中方式如下:
1, 注入形式
- public class IndexModel : PageModel
- {
- private ILogger _logger;
- public IndexModel(ILogger logger)
- {
- _logger = logger;
- }
- public string Customer { get; set; }
- public void OnGet()
- {
- _logger.LogWarning("111111111111111111111");
- Customer = "123456";
- }
- }
2, 获取实例形式
- private static Logger Logger = LogManager.GetCurrentClassLogger();
- public static void Main(string[] args)
- {
- Logger.Error("22222222222222222222222222222");
- Logger.Info("333333333333333333333333333333");
- }
- log4net
log4net 已支持 net core, 来看下在 net core 下是如何配置的, 与之前的版本还是有一点的区别
使用惯例, 引用 Nuget log4net 新建配置文件
- <?xml version="1.0" encoding="utf-8" ?-->
- "ConsoleAppender" type="log4net.Appender.ConsoleAppender">
- "FileAppender" type="log4net.Appender.FileAppender">
- "RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
配置文件的相关说明, 可以查看另一篇文章 点我跳转
在 StartUp.cs 中配置 log4Net
public static ILoggerRepository repository { get; set; }
Controller 中的使用
- private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(ValuesController));
- [HttpGet]
- public ActionResult> Get()
- {
- log.Info(1111111111111111111);
- return new string[] { "value1", "value2" };
- }
控制台中的使用
ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");
来源: https://www.2cto.com/kf/201904/805468.html