สร้างโปรเจ็กส์แบบ Blazor Server App
1. ทดสอบ logger
ที่ไฟล์ Pages/Counter.razor
เพิ่มโค๊ด _logger.*
ไว้ดูผลการ log
@page "/counter" @inject ILogger<Counter> logger <PageTitle>Counter</PageTitle> <h1>Counter</h1> <p role="status">Current count: @currentCount</p> <button class="btn btn-primary" @onclick="IncrementCount">Click me</button> @code { private int currentCount = 0; private void IncrementCount() { logger.LogInformation("This is an INFORMATION message."); logger.LogWarning("This is a WARNING message."); logger.LogError("This is an ERROR message."); currentCount++; } }
เปิดหน้าต่าง Output โดยไปที่เมนู View | Output
ทดลองเรียกไปที่หน้า Counter เช่น https://localhost:7180/counter แล้วดูที่หน้าต่าง Output
BlazorServerApp6.Pages.Counter: Information: This is an INFORMATION message. BlazorServerApp6.Pages.Counter: Warning: This is a WARNING message. BlazorServerApp6.Pages.Counter: Error: This is an ERROR message.
2. ใช้ log4net
ติดตั้ง Package log4net
และ Microsoft.Extensions.Logging.Log4Net.AspNetCore
- NuGet Gallery | log4net 2.0.15
- NuGet Gallery | Microsoft.Extensions.Logging.Log4Net.AspNetCore 6.1.0
PM> NuGet\Install-Package log4net -Version 2.0.15 PM> NuGet\Install-Package Microsoft.Extensions.Logging.Log4Net.AspNetCore -Version 6.1.0
สร้างไฟล์ log4net.config
<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <file value="log/" /> <datePattern value="yyMMdd'Jack.log'" /> <staticLogFileName value="false"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <maxSizeRollBackups value="100"/> <maximumFileSize value="15MB"/> <encoding value="UTF-8"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%-5p%d{ HH:mm:ss} li:%line - [%method] %m %n" /> </layout> </appender> <root> <level value="ALL"/> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net>
แก้ไขไฟล์ Program.cs
using BlazorServerApp6.Data; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; var builder = WebApplication.CreateBuilder(args); ILoggerFactory _loggerFactory = (ILoggerFactory)new LoggerFactory(); _loggerFactory.AddLog4Net(); builder.Services.AddSingleton(_loggerFactory); // Add services to the container. builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddSingleton<WeatherForecastService>(); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); app.Run();
ทดลองเรียกหน้า Counter อีกครั้งจะได้ไฟล์ .log