可視化面板LogDashboard使用log4net源

logdashboard現已支持log4net文件源,本示例源碼在 https://github.com/liangshiw/LogDashboard/tree/master/samples/UseLog4nethtml

關於logdashboard的介紹能夠看這裏git

使用log4net

建立一個NotCore項目

確保機器上安裝上DotnetCore SDK ,同快速入門同樣,咱們須要一個DotnetCore Empty項目 。打開PowerShell運行如下命令github

dotnet new empty

安裝log4net組件包

使用visualstudio打開項目,這時安裝log4net程序包瀏覽器

Install-Package Microsoft.Extensions.Logging.Log4Net.AspNetCore

打開Startup.cs在Configure方法中添加log4net中間件,複製如下代碼添加到Configure方法中app

loggerFactory.AddLog4Net(new Log4NetProviderOptions
{
    PropertyOverrides =
        new List<NodeInfo>
        {
            new NodeInfo { XPath = "/log4net/appender/file[last()]", Attributes = new Dictionary<string, string> { { "value", $"{AppContext.BaseDirectory}LogFiles/" } } }
        }
});

添加log4net.config到項目中,並右鍵文件設置爲複製到輸出目錄(始終複製),如下是log4net.config的所有內容async

配置文件須要分隔符才能夠被NLogDashboard解析,默認是||與||end,固然這些能夠自定義,請參見 LogDashboard配置ide

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="LogFiles/"/>
    <preserveLogFileNameExtension value="true" />
    <datePattern value="yyyy-MM-dd'.log'" />
    <staticLogFileName value="false"/>
    <appendToFile value="true" />
    <maximumFileSize value="100KB" />
    <maxSizeRollBackups value="2" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date || %5level || %logger || %message || %exception ||end %newline" />
    </layout>
  </appender>
  <root>
    <level value="ALL"/>
    <appender-ref ref="RollingFile" />
  </root>
</log4net>

安裝LogDashboard

準備工做已經結束,這時安裝LogDashboardui

Install-Package LogDashboard

打開Startup.cs咱們要作兩件事spa

  1. 在ConfigureServices方法中配置服務
public void ConfigureServices(IServiceCollection services)
{
    services.AddLogDashboard();
}

關於更多的配置請參閱 LogDashboard配置日誌

  1. 在Configure方法中配置中間件
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseLogDashboard();

    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hello World!");
    });
}

大功告成,這時運行項目,在瀏覽器中導航到/logdashboard。這時就能看到日誌面板了

發佈時須要注意!

打開.csproj項目文件添加如下行 , 緣由請參見 https://github.com/aspnet/Mvc/issues/6021

<PropertyGroup>
   <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
 </PropertyGroup>
相關文章
相關標籤/搜索