.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 xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- autoReload="true"
- internalLogLevel="Warn"
- internalLogFile="internal-nlog.txt">
- <!--define various log targets-->
- <targets>
- <!--write logs to file-->
- <target xsi:type="File" name="allfile" fileName="Logs/service-${shortdate}.log"
- layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />
- </targets>
- <rules>
- <!--All logs, including from Microsoft-->
- <logger name="*" minlevel="Trace" writeTo="allfile" />
- </rules>
- </nlog>
将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<IndexModel> _logger;
- public IndexModel(ILogger<IndexModel> logger)
- {
- _logger = logger;
- }
- public string Customer { get; set; }
- public void OnGet()
- {
- _logger.LogWarning("");
- Customer = "";
- }
- }
2、获取实例形式
- private static Logger Logger = LogManager.GetCurrentClassLogger();
- public static void Main(string[] args)
- {
- Logger.Error("");
- Logger.Info("");
- }
log4net
log4net已支持net core,来看下在net core下是如何配置的,与之前的版本还是有一点的区别
使用惯例,引用Nuget
- log4net
新建配置文件
- <?xml version="1.0" encoding="utf-8" ?>
- <configuration>
- <!-- This section contains the log4net configuration settings -->
- <log4net>
- <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
- <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
- </appender>
- <appender name="FileAppender" type="log4net.Appender.FileAppender">
- <file value="log-file.log" />
- <appendToFile value="true" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="logs/" />
- <appendToFile value="true" />
- <rollingStyle value="Date" />
- <staticLogFileName value="false" />
- <datePattern value="yyyy-MM-dd'.log'" />
- <maxSizeRollBackups value="" />
- <maximumFileSize value="1MB" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
- <!-- Setup the root category, add the appenders and set the default level -->
- <root>
- <level value="ALL" />
- <appender-ref ref="ConsoleAppender" />
- <appender-ref ref="FileAppender" />
- <appender-ref ref="RollingLogFileAppender" />
- </root>
- </log4net>
- </configuration>
配置文件的相关说明,可以查看另一篇文章 点我跳转
在StartUp.cs中配置log4Net
- public static ILoggerRepository repository { get; set; }
- public Startup(IConfiguration configuration)
- {
- Configuration = configuration;
- //log4net
- repository = LogManager.CreateRepository("NETCoreRepository");
- //指定配置文件
- XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
- }
Controller中的使用
- private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(ValuesController));
- [HttpGet]
- public ActionResult<IEnumerable<string>> Get()
- {
- log.Info();
- return new string[] { "value1", "value2" };
- }
控制台中的使用
- ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");
- XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
- ILog log = LogManager.GetLogger(repository.Name,"NETCorelog4net");
- log.Info("test log");
.net core 杂记:日记记录的更多相关文章
- .NET 4.5+项目迁移.NET Core的问题记录
.NET 4.5+项目迁移.NET Core的问题记录 这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下. 迁移过程遇到的最大的问题IOC容器.我目前使用的 ...
- ASP.NET Core使用Elasticsearch记录NLog日志
ASP.NET Core使用Elasticsearch记录NLog日志 1.新建一个 ASP.NET Core项目 2.安装Nuge包 运行:Install-Package NLog.Web.AspN ...
- C++添加简单的日记记录
#include<fstream>#include<iostream> using namespace std;//这是一种日记记录 b 种void LOG(char *tx, ...
- .net core jwt 入门记录
从百度里搜索里搜索了很多jwt的文章,跟着文章写了一个demo,这里记录下学习过程中碰上的问题.看文章多遍,不如手工实现一次. 模板已上传到github.com:dogvane/webapi_jwt_ ...
- [转].NET 4.5+项目迁移.NET Core的问题记录 HTTP Error 502.5
本文转自:http://www.cnblogs.com/ronli/p/5900001.html 这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下. 迁移过 ...
- [Elixir001]使用tty做一个简单的日记记录
大半年前实践的使用Evernote做知识管理 https://www.zhihu.com/question/20232993/answer/34270710里面的记录日记模块大概长成这样子 用了半年, ...
- .net core 杂记:WebAPI的XML请求和响应
一般情况下,restfult api 进行数据返回或模型绑定,默认json格式会比较常见和方便,当然偶尔也会需要以XML格式的要求 对于返回XML,普通常见的方式就是在每个aciton方法进行诸如X ...
- asp.net core的AOP记录
序曲:学习编程最好的方式就是敲代码,没有比这个更好的方法,哪怕你看了上百G的视频,都不如你自己敲几行代码更为有效.还有要记得敲完代码然后写一篇随笔来记录一下你所学所想. 什么叫AOP? AOP面向切面 ...
- .net core 杂记:用Autofac替换内置容器
官方建议使用内置容器,但有些功能并不支持,如下: 属性注入 基于名称的注入 子容器 自定义生存期管理 Func<T> 支持 所以可以使用其他第三方IOC容器,如Autofac,下面为学习使 ...
随机推荐
- HTML学习笔记:2.基础语法
HTML基本结构 HTML标签 HTML元素 HTML属性 注释 ①基本结构 <html> html:指明是个html文件 <head> <title>标题< ...
- PAT1082:Read Number in Chinese
1082. Read Number in Chinese (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...
- struct和union的区别
1)union是几个不同类型的变量共占一段内存(相互覆盖):struct是把不同类型的数据组合成一个整体 2)对齐方式略有区别:union不需要+,只需要拿出对齐后的最长 structure unio ...
- Hibernate中的常用API
1.Configuration 1.1 加载核心配置文件, 加载hibernate.properties时:Configuration configuration = new Configuratio ...
- 解决MyEclipse注册失败的问题
https://jingyan.baidu.com/article/acf728fd49519ff8e410a361.html
- SSM-Spring-20:Spring中事务基础
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 事务 事务是什么? 我记得当初的百度百科上讲,事务是执行的最小逻辑单元,它们要么都执行,要么都不执行 (同生共 ...
- mysqldump详解
Ⅰ.mysqldump的简单使用与注意点 1.1 基本参数 只备份innodb,用不了几个参数,记住下面几个即可,其他的没什么卵用 -A 备份所有的database -B 备份哪几个数据库 -R 备份 ...
- OAuth 2 开发人员指南
这是支持OAuth2.0的用户指南.对于OAuth1.0,一切都是不同的,所以看它的用户指南. 本用户指南分为两个部分,第一部分是OAuth2.0提供端(OAuth 2.0 Provider),第二部 ...
- monkey操作
1.monkey命令格式 直接adb shell进入后输入monkey [options] <eventcount> 或者每次输入adb shell monkey [options] &l ...
- 你不知道的JavaScript--Item18 JScript的Bug与内存管理
1.JScript的Bug IE的ECMAScript实现JScript严重混淆了命名函数表达式,搞得现很多人都出来反对命名函数表达式,而且即便是现在还一直在用的一版(IE8中使用的5.8版)仍然存在 ...