詳解.net core日記記錄
ASP.NET Core 有內(nèi)置的log組件,遺憾的是看了微軟官方文檔,貌似無(wú)法直接將日志存于文件或數(shù)據(jù)庫(kù),只能由自己實(shí)現(xiàn)或引用第三方日志組件。
以下為Nlog和log4net的使用記錄
Nlog使用
搜索添加Nuget包
Nlog
Nlog.Web.AspNetCore
新建一個(gè)xml文件,并改名為nlog.config
XML內(nèi)容如下(可配置日志目錄名稱、輸出格式):
<?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設(shè)置輸出到目錄
在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("111111111111111111111"); Customer = "123456"; } }
2、獲取實(shí)例形式
private static Logger Logger = LogManager.GetCurrentClassLogger(); public static void Main(string[] args) { Logger.Error("22222222222222222222222222222"); Logger.Info("333333333333333333333333333333"); }
log4net
log4net已支持net core,來(lái)看下在net core下是如何配置的,與之前的版本還是有一點(diǎn)的區(qū)別
使用慣例,引用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="7" /> <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>
配置文件的相關(guān)說(shuō)明,可以查看另一篇文章點(diǎn)我跳轉(zhuǎn)
在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(1111111111111111111); return new string[] { "value1", "value2" }; }
控制臺(tái)中的使用
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日記記錄詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Net5?WorkService?繼承?Quarzt?及?Net5處理文件上傳功能
這篇文章主要介紹了Net5?WorkService?繼承?Quarzt?以及?Net5處理文件上傳,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02asp.net core新特性之TagHelper標(biāo)簽助手
這篇文章主要為大家詳細(xì)介紹了asp.net core新特性之TagHelper標(biāo)簽助手的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Asp.Net 網(wǎng)站優(yōu)化系列之?dāng)?shù)據(jù)庫(kù)優(yōu)化分字訣上 分庫(kù)
當(dāng)我們的數(shù)據(jù)量很小的時(shí)候,我們會(huì)把用戶表,博客表,論壇表,閃存表等等都砸在一個(gè)庫(kù)里,我們的業(yè)務(wù)增長(zhǎng)的很好,在不久之后我們盡力的優(yōu)化了查詢,但是效果依然不佳,這時(shí)候用分字訣的時(shí)機(jī)到了。2010-06-06asp.net 退出登陸(解決退出后點(diǎn)擊瀏覽器后退問(wèn)題仍然可回到頁(yè)面問(wèn)題)
退出登陸是再常見(jiàn)不過(guò)的了,先清除Session,再轉(zhuǎn)到登陸頁(yè)面2009-04-04ASP.NET中利用存儲(chǔ)過(guò)程實(shí)現(xiàn)模糊查詢
ASP.NET中利用存儲(chǔ)過(guò)程實(shí)現(xiàn)模糊查詢...2006-09-09ScriptManager.RegisterStartupScript()方法在ajax頁(yè)面無(wú)效的解決方法
ScriptManager.RegisterStartupScript()方法在ajax頁(yè)面無(wú)效的解決方法2010-03-03asp.net中DBNull.Value,null,String.Empty區(qū)別淺析
這篇文章來(lái)給大家介紹asp.net中DBNull.Value,null,String.Empty區(qū)別淺析,有需要的同學(xué)可以參考一下2013-08-08Entity Framework Core對(duì)Web項(xiàng)目生成數(shù)據(jù)庫(kù)表
這篇文章介紹了Entity Framework Core對(duì)Web項(xiàng)目生成數(shù)據(jù)庫(kù)表的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03