logdashboard现已支持log4net文件源,本示例源码在 https://github.com/liangshiw/LogDashboard/tree/master/samples/UseLog4nethtml
关于logdashboard的介绍能够看这里git
确保机器上安装上DotnetCore SDK ,同快速入门同样,咱们须要一个DotnetCore Empty项目 。打开PowerShell运行如下命令github
dotnet new empty
使用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>
准备工做已经结束,这时安装LogDashboardui
Install-Package LogDashboard
打开Startup.cs咱们要作两件事spa
public void ConfigureServices(IServiceCollection services) { services.AddLogDashboard(); }
关于更多的配置请参阅 LogDashboard配置日志
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>