最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

為WPF框架Prism注冊(cè)Nlog日志服務(wù)

 更新時(shí)間:2022年02月15日 08:58:29   作者:痕跡g  
這篇文章介紹了為WPF框架Prism注冊(cè)Nlog日志服務(wù)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

無(wú)論是Nlog還是Serilog, 它們都提供了如何快速在各類(lèi)應(yīng)用程序當(dāng)中的快速使用方法。

盡管,你現(xiàn)在無(wú)論是在WPF或者ASP.NET Core當(dāng)中, 都可以使用ServiceCollection來(lái)做到著一點(diǎn), 因?yàn)槿罩究蚣芏继峁┝薎ServiceCollection的擴(kuò)展。

但是, 如果現(xiàn)在你使用的是Prism 8.0的應(yīng)用程序, Prism提供了多種容器的支持, 例如:DryIoc或者Unity, 這個(gè)時(shí)候我們?nèi)绻F(xiàn)在這個(gè)基礎(chǔ)上實(shí)現(xiàn)依賴(lài)注入,首先我們需要修改Prism當(dāng)中創(chuàng)建容器的默認(rèn)實(shí)現(xiàn), 在其中將ServiceCollection追加到容器當(dāng)中。

本文的示例主要以DryIoc容器為示例:

這里會(huì)主要用到幾個(gè)相關(guān)的依賴(lài):

  • Microsoft.Extensions.DependencyInjection;
  • Microsoft.Extensions.Logging;
  • DryIoc.Microsoft.DependencyInjection;
  • NLog.Extensions.Logging;

為此, 需要添加一些相關(guān)的包,如下所示:

Nlog.Config: 主要配置Nlog的執(zhí)行配置,規(guī)則

NLog.Extensions.Logging: 擴(kuò)展方法, 用于注冊(cè)服務(wù)

在App.xaml.cs代碼,如下所示:

        protected override IContainerExtension CreateContainerExtension()
        {
            var serviceCollection = new ServiceCollection();
            serviceCollection.AddLogging(configure =>
            {
                configure.ClearProviders();
                configure.SetMinimumLevel(LogLevel.Trace);
                configure.AddNLog();
            });

            return new DryIocContainerExtension(new Container(CreateContainerRules())
                .WithDependencyInjectionAdapter(serviceCollection));
        }

窗口中,添加測(cè)試代碼:

    public partial class MainWindow : Window
    {
        private readonly Logger<MainWindow> logger;

        public MainWindow(Logger<MainWindow> logger)
        {
            InitializeComponent();
            this.logger = logger;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            logger.LogDebug("Hello");
        }
    }

注意: 配置Nlog需要修改Nlog.Config配置文件生效,可參考Github文檔, 下面為測(cè)試配置:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
  
  <targets>
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
            layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}"  />
  </targets>

  <rules> 
    <logger name="*" minlevel="Debug" writeTo="f" /> 
  </rules>
</nlog>

最終輸出內(nèi)容,如下所示:

2021-08-19 16:32:00.5558|0|DEBUG|wpflogapp.MainWindow|Hello 
2021-08-19 16:32:00.7049|0|DEBUG|wpflogapp.MainWindow|Hello 
2021-08-19 16:32:00.8828|0|DEBUG|wpflogapp.MainWindow|Hello 
2021-08-19 16:32:01.0647|0|DEBUG|wpflogapp.MainWindow|Hello 
2021-08-19 16:32:01.2608|0|DEBUG|wpflogapp.MainWindow|Hello 

完整App.xaml.cs文件代碼如下:

    public partial class App : PrismApplication
    {
        protected override Window CreateShell()
        { 
            return Container.Resolve<MainWindow>();
        } 
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        { } 
        protected override IContainerExtension CreateContainerExtension()
        {
            var serviceCollection = new ServiceCollection();
            serviceCollection.AddLogging(configure =>
            {
                configure.ClearProviders();
                configure.SetMinimumLevel(LogLevel.Trace);
                configure.AddNLog();
            });

            return new DryIocContainerExtension(new Container(CreateContainerRules())
                .WithDependencyInjectionAdapter(serviceCollection));
        }
    }

到此這篇關(guān)于為WPF框架Prism注冊(cè)Nlog日志服務(wù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • .NET Core中如何實(shí)現(xiàn)或使用對(duì)象池?

    .NET Core中如何實(shí)現(xiàn)或使用對(duì)象池?

    什么是對(duì)象池?簡(jiǎn)單來(lái)說(shuō)它就是一種為對(duì)象提供可復(fù)用性能力的軟件設(shè)計(jì)思路,對(duì)象池就是通過(guò)“借”和“還”這樣兩個(gè)動(dòng)作來(lái)保證對(duì)象可以被重復(fù)使用,這篇文章主要給大家介紹了關(guān)于.NET Core中如何實(shí)現(xiàn)或使用對(duì)象池的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • .NET Windows 多線(xiàn)程thread編程

    .NET Windows 多線(xiàn)程thread編程

    .net里使用線(xiàn)程,用thread類(lèi),定義線(xiàn)程,啟動(dòng),銷(xiāo)毀,全部包括在這個(gè)類(lèi)里,定義一個(gè)線(xiàn)程,必須指定這個(gè)線(xiàn)程的函數(shù),也就是這個(gè)線(xiàn)程是做什么的
    2012-12-12
  • asp.net TripleDES加密、解密算法

    asp.net TripleDES加密、解密算法

    加密,使用密碼產(chǎn)生加密算法的公鑰,并使用TripleDES對(duì)密碼進(jìn)行加密。解密,使用密碼產(chǎn)生加密算法的公鑰,并使用TripleDES對(duì)加密數(shù)據(jù)進(jìn)行解密。
    2008-08-08
  • GridView選擇記錄同時(shí)confirm用戶(hù)確認(rèn)刪除

    GridView選擇記錄同時(shí)confirm用戶(hù)確認(rèn)刪除

    confirm用戶(hù)確認(rèn)刪除是一個(gè)很實(shí)用的功能,比如可以防止用戶(hù)誤操作刪除等等,感興趣的朋友可以了解下,希望本文對(duì)你有所幫助,就當(dāng)鞏固知識(shí)了
    2013-01-01
  • net core日志與異常處理小結(jié)

    net core日志與異常處理小結(jié)

    asp.net core的webApplicationBuilder中自帶了一個(gè)日志組件,無(wú)需手動(dòng)注冊(cè)服務(wù)就能直接在控制器中構(gòu)造注入,這篇文章主要介紹了net core日志與異常處理小結(jié),需要的朋友可以參考下
    2024-07-07
  • asp.net Grid 導(dǎo)出Excel實(shí)現(xiàn)程序代碼

    asp.net Grid 導(dǎo)出Excel實(shí)現(xiàn)程序代碼

    看了FineUI中的將Grid導(dǎo)出為Excel的實(shí)現(xiàn)方法,實(shí)際上是可以非常簡(jiǎn)單??磥?lái)很難的問(wèn)題,變換一種思路就可以非常簡(jiǎn)單
    2012-12-12
  • Asp.net,C# 加密解密字符串的使用詳解

    Asp.net,C# 加密解密字符串的使用詳解

    本篇文章對(duì)Asp.net,C# 加密解密字符串的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 完美兼容ie和firefox的asp.net網(wǎng)站加入收藏和設(shè)置主頁(yè)

    完美兼容ie和firefox的asp.net網(wǎng)站加入收藏和設(shè)置主頁(yè)

    這篇文章主要介紹了完美兼容ie和firefox的asp.net網(wǎng)站加入收藏和設(shè)置主頁(yè),需要的朋友可以參考下
    2014-12-12
  • 如何傳值在2個(gè)頁(yè)面之間 要求不刷新父頁(yè)面,并且不能用Querystring傳值

    如何傳值在2個(gè)頁(yè)面之間 要求不刷新父頁(yè)面,并且不能用Querystring傳值

    通過(guò)Cookie,因?yàn)樗瓤梢栽诜?wù)器端對(duì)其進(jìn)行操作,也可在客戶(hù)端對(duì)其進(jìn)行操作但是缺點(diǎn)是不安全,而且有時(shí)客戶(hù)端會(huì)由于安全問(wèn)題禁用Cookie!
    2008-12-12
  • .NET C#創(chuàng)建WebService服務(wù)簡(jiǎn)單實(shí)例

    .NET C#創(chuàng)建WebService服務(wù)簡(jiǎn)單實(shí)例

    這篇文章主要為大家詳細(xì)介紹了.NET C# 創(chuàng)建WebService服務(wù)簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評(píng)論

新营市| 公安县| 青州市| 湖州市| 曲阳县| 莱阳市| 大关县| 土默特右旗| 铅山县| 新平| 陕西省| 黎川县| 海林市| 金溪县| 玉龙| 岳池县| 扶绥县| 临沭县| 花垣县| 大丰市| 体育| 剑河县| 巴南区| 应城市| 龙岩市| 治县。| 嵊州市| 前郭尔| 珠海市| 青龙| 呼伦贝尔市| 兰州市| 安化县| 盐边县| 三明市| 札达县| 徐州市| 苍南县| 西峡县| 迭部县| 延吉市|