国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

.NetCore之log4net的使用

這篇具有很好參考價值的文章主要介紹了.NetCore之log4net的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.首先下載log4ne的包:
.NetCore之log4net的使用,.netcore
2.添加配置文件log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<!-- This section contains the log4net configuration settings -->
	<log4net>
		<appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
			<!--日志輸入路徑-->
			<file value="ErrorLog/" />
			<!--日志是否追加到文件-->
			<appendToFile value="true" />
			<!--按照何種方式產(chǎn)生多個日志文件(日期[Date],文件大小[Size],混合[Composite])-->
			<rollingStyle value="Composite" />
			<!--是否只寫到一個文件中-->
			<staticLogFileName value="false" />
			<!--防止多線程時不能寫Log,官方說線程非安全-->
			<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
			<!--按日期命名文件-->
			<datePattern value="yyyyMMdd'.log'" />
			<!--最多產(chǎn)生文件數(shù)超過的話保留最新-->
			<maxSizeRollBackups value="100" />
			<!--每個文件的大小。只在混合方式與文件大小方式下使用。超出大小后在所有文件名后自動增加正整數(shù)重新命名,數(shù)字最大的最早寫入??捎玫膯挝?span id="n5n3t3z"    class="token punctuation">:KB|MB|GB。不要使用小數(shù),否則會一直寫入當前日志-->
			<maximumFileSize value="50MB" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%date  [%thread]  %-5level  %message%newline" />
				<header value="&#xA;----------------------header--------------------------&#xA;" />
				<footer value="&#xA;----------------------footer--------------------------&#xA;"/>
			</layout>
			<!--定義日志級別根據(jù)不同的級別調(diào)用不同的配置寫入-->
			<filter type="log4net.Filter.LevelRangeFilter">
				<param name="LevelMin" value="Error" />
				<param name="LevelMax" value="Error" />
			</filter>
		</appender>

		<appender name="DeBugLogFileAppender" type="log4net.Appender.RollingFileAppender">
			<!--日志輸入路徑-->
			<file value="DeBugLog/" />
			<!--日志是否追加到文件-->
			<appendToFile value="true" />
			<!--按照何種方式產(chǎn)生多個日志文件(日期[Date],文件大小[Size],混合[Composite])-->
			<rollingStyle value="Composite" />
			<!--是否只寫到一個文件中-->
			<staticLogFileName value="false" />
			<!--防止多線程時不能寫Log,官方說線程非安全-->
			<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
			<!--按日期命名文件-->
			<datePattern value="yyyyMMdd'.log'" />
			<!--最多產(chǎn)生文件數(shù)超過的話保留最新-->
			<maxSizeRollBackups value="100" />
			<!--每個文件的大小。只在混合方式與文件大小方式下使用。超出大小后在所有文件名后自動增加正整數(shù)重新命名,數(shù)字最大的最早寫入??捎玫膯挝?span id="n5n3t3z"    class="token punctuation">:KB|MB|GB。不要使用小數(shù),否則會一直寫入當前日志-->
			<maximumFileSize value="50MB" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%date  [%thread]  %-5level  %message%newline" />
				<header value="&#xA;----------------------header--------------------------&#xA;" />
				<footer value="&#xA;----------------------footer--------------------------&#xA;"/>
			</layout>
			<!--定義日志級別根據(jù)不同的級別調(diào)用不同的配置寫入-->
			<filter type="log4net.Filter.LevelRangeFilter">
				<param name="LevelMin" value="DeBug" />
				<param name="LevelMax" value="DeBug" />
			</filter>
		</appender>

		<!-- Setup the root category, add the appenders and set the default level -->
		<root>
			<level value="All" />
			<appender-ref ref="ErrorLogFileAppender" />
			<appender-ref ref="DeBugLogFileAppender" />
		</root>
	</log4net>
</configuration>

3.添加日志幫助類

using log4net.Config;
using log4net;

namespace CodeIdentify
{
    public class LoggerHelper
    {
        private ILog logger;
        public LoggerHelper()
        {
            if (logger == null)
            {
                var repository = LogManager.CreateRepository("NETCoreRepository");
                //log4net從log4net.config文件中讀取配置信息
                XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
                logger = LogManager.GetLogger(repository.Name, "Logger");
            }
        }

        /// <summary>
        /// Debug日志
        /// </summary>
        /// <param name="data">調(diào)試數(shù)據(jù)</param>
        public void Debug(object data)
        {
            logger.Debug(data);
        }

        /// <summary>
        /// 普通日志
        /// </summary>
        /// <param name="controller">控制器</param>
        /// <param name="exception">catch異常信息</param>
        public void Info(string controller, Exception exception = null)
        {
            if (exception == null)
                logger.Info(controller);
            else
                logger.Info(controller, exception);
        }

        /// <summary>
        /// 告警日志
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="exception"></param>
        public void Warn(string controller, Exception exception = null)
        {
            if (exception == null)
                logger.Warn(controller);
            else
                logger.Warn(controller, exception);
        }

        /// <summary>
        /// 錯誤日志
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="exception"></param>
        public void Error(string controller, Exception exception = null)
        {
            if (exception == null)
                logger.Error(controller);
            else
                logger.Error(controller, exception);
        }
    }

}

4.在服務中采用單例生命周期注入

builder.Services.AddSingleton(typeof(LoggerHelper));

5.添加全局異常過濾器

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System.Net;

namespace CodeIdentify
{
    public class GlobalExceptionFilter : IExceptionFilter
    {

        private readonly LoggerHelper  _loggerHelper;
        public GlobalExceptionFilter(LoggerHelper loggerHelper)
        {
            _loggerHelper= loggerHelper;
        }
        public void OnException(ExceptionContext context)
        {
            var exception = context.Exception;
            _loggerHelper.Error(context.HttpContext.Request.Method, exception);
            context.ExceptionHandled = true; // 標記已處理異常
        }
    }
}

6.注入過濾器服務

builder.Services.AddControllers(options =>
{
    options.Filters.Add<GlobalExceptionFilter>();
});

7.使用

using CodeIdentify.Servers;
using Microsoft.AspNetCore.Mvc;

namespace CodeIdentify.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class CodeIdentityController : ControllerBase
    {
        private readonly IBaiDuCodeIdentity _baiDuCodeIdentity;
        public CodeIdentityController(IBaiDuCodeIdentity baiDuCodeIdentity) 
        {
            _baiDuCodeIdentity = baiDuCodeIdentity;
        }
        [HttpPost]
        public async Task<IActionResult> GetCode([FromBody] string url) 
        {
            if(string.IsNullOrWhiteSpace(url)) throw new ArgumentNullException(nameof(url));
          
            return Ok();
         

        } 
    }
}

日志截圖:
.NetCore之log4net的使用,.netcore文章來源地址http://www.zghlxwxcb.cn/news/detail-671225.html

到了這里,關于.NetCore之log4net的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C# .Net Core log4net 使用方法

    一、背景 前排提示,覺得墨跡的朋友可以直接看解決方法部分! 啊,許久沒有這般耗時耗力了。。。鼓搗了一下午,不斷地查閱資料,終于成功把log4net配置成功了。不過,筆者對log4net的底層并不了解,這里只是簡單記錄學習過程,給同樣的初學者提供些許方便。 二、探索

    2024年02月04日
    瀏覽(19)
  • Asp.Net 使用Log4Net (SQL Server)

    首先,在你的SQL Server數(shù)據(jù)庫中創(chuàng)建一個用于存儲日志的表。以下是一個簡單的表結構示例: 修改Log4Net配置文件(Log4Net.config),將 RollingLogFileAppender 替換為 AdoNetAppender 。配置 AdoNetAppender 以連接到數(shù)據(jù)庫并將日志數(shù)據(jù)插入到上述創(chuàng)建的數(shù)據(jù)庫表中。 注意 bufferSize value=\\\"10\\\"/ ,

    2024年02月15日
    瀏覽(44)
  • Log4net在.Net Winform項目中的使用

    Log4net在.Net Winform項目中的使用

    Log4net是一個流行的日志記錄工具,可以幫助開發(fā)人員在應用程序中實現(xiàn)高效的日志記錄。本文將提供一個詳細的分步驟示例,來幫助您在.Net Winform項目中使用Log4net。 打開Visual Studio工具。 選擇您的.Net Winform項目,并右擊選擇“管理NuGet程序包”。 在NuGet程序包管理器中搜索并

    2024年02月12日
    瀏覽(29)
  • .NET Core WebAPI中使用Log4net記錄日志
  • AI面試官:Asp.Net 中使用Log4Net (二)

    當面試涉及到使用log4net日志記錄框架的相關問題時,通常會聚焦在如何在.NET或.NET Core應用程序中集成和使用log4net。以下是一些關于log4net的面試題目,以及相應的解答、案例和代碼: 解答:可以使用log4net的多個appender來實現(xiàn)將日志信息同時輸出到文件和數(shù)據(jù)庫。可以配置一

    2024年02月15日
    瀏覽(25)
  • .NET Core WebAPI中使用Log4net 日志級別分類并記錄到數(shù)據(jù)庫

    .NET Core WebAPI中使用Log4net 日志級別分類并記錄到數(shù)據(jù)庫

    記錄日志為文檔 記錄日志到數(shù)據(jù)庫

    2024年02月20日
    瀏覽(86)
  • Asp.Net 6.0集成 Log4Net

    Asp.Net 6.0集成 Log4Net

    需要安裝NuGet包,明細如下: log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore 文件名稱 log4net.config ,默認可以放在與啟動類 Program.cs 同級目錄下 在啟動類中進行配置(Program.cs)

    2024年02月07日
    瀏覽(26)
  • 【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件詳細說明

    【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件詳細說明

    歡迎來到《小5講堂》 大家好,我是全棧小5。 這是《C#》系列文章,每篇文章將以博主理解的角度展開講解, 特別是針對知識點的概念進行敘說,大部分文章將會對這些概念進行實際例子驗證,以此達到加深對知識點的理解和掌握。 溫馨提示:博主能力有限,理解水平有限

    2024年04月12日
    瀏覽(31)
  • .NET 最便捷的Log4Net日志記錄器

    .NET 最便捷的Log4Net日志記錄器

    Apache log4net 庫是一個幫助程序員將日志語句輸出到各種的工具 的輸出目標。log4net是優(yōu)秀的Apachelog4j?框架的移植 ? Microsoft.NET 運行時。我們保持了與原始log4j相似的框架 同時利用 .NET 運行時中的新功能。 log4net是Apache軟件基金會Apache日志記錄服務項目的一部分。日志記錄服務

    2024年02月11日
    瀏覽(19)
  • .Net6 Web Core API --- AOP -- log4net 封裝 -- MySQL -- txt

    .Net6 Web Core API --- AOP -- log4net 封裝 -- MySQL -- txt

    目錄 一、引入 NuGet 包 二、配置log4net.config?? 三、編寫Log4net封裝類 四、編寫日志記錄類 五、AOP -- 攔截器 -- 封裝 六、案例編寫 七、結果展示 log4net? Microsoft.Extensions.Logging.Log4Net.AspNetCore? ? MySql.Data? ? ? ? ?----? MySQL數(shù)據(jù)庫需要 Newtonsoft.Json Autofac Autofac.Extensions.DependencyInj

    2024年02月14日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包