Docker - 第九章 | 安裝 datalust seq
docker run --name seq -d --restart unless-stopped -e ACCEPT_EULA=Y -v D:\docker\seqdata:/data -p 5341:80 datalust/seq:latestbuilder.Logging.AddSeq();builder.Logging.AddSeq(serverUrl: "http://localhost:5341", apiKey: "your-api-key");builder.Logging.AddSeq(builder.Configuration.GetSection("Seq"));{ "Seq": { "ServerUrl": "http://localhost:5341", "ApiKey": "1234567890", "MinimumLevel": "Trace", "LevelOverride": { "Microsoft": "Warning" } } }
#region 加入 NLog 相關資訊 // 環境的相關資訊 #if DEBUG NLogBuilder.ConfigureNLog($"nlog.config").GetCurrentClassLogger(); #else NLogBuilder.ConfigureNLog($"nlog.{environmentName}.config").GetCurrentClassLogger(); #endif // 將NLog註冊到此專案內 builder.Logging.ClearProviders(); // 設定log紀錄的最小等級 builder.Logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information); builder.Host.UseNLog(); #endregion
<extensions> <!-- 引用seq type --> <add assembly="NLog.Targets.Seq"/> </extensions> <targets> <!-- 使用AsyncWrapper(nlog原生)可提升效能,且當寫入seq有問題時不會影響應用程式結果 --> <!-- 參考: https://github.com/NLog/NLog/wiki/AsyncWrapper-target --> <target name="seq" xsi:type="AsyncWrapper" overflowAction="Discard" queueLimit="10000" batchSize="200" timeToSleepBetweenBatches="1"> <!-- 可以啟用apikey,只允許授權的key寫入log,也可做到群組統計的效果 --> <target xsi:type="Seq" serverUrl="http://localhost:5341" apiKey="" > <!-- property會一起帶到seq log裡,可作為filter欄位 --> <property name="SourceContext" value="${logger}" /> <property name="ThreadId" value="${threadid}" as="number" /> <property name="MachineName" value="${machinename}" /> <property name="Environment" value="${windows-identity}" /> <property name="Application" value="KH.Lab.Seq" /> </target> </target> </targets>using Microsoft.AspNetCore.Mvc; namespace KH.Lab.Seq.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet(Name = "GetWeatherForecast")] public IEnumerable<WeatherForecast> Get() { _logger.LogTrace("這是 Trace"); _logger.LogDebug("這是 Debug"); _logger.LogInformation("這是 Information"); _logger.LogWarning("這是 Warning"); _logger.LogError("這是 Error"); _logger.LogCritical("這是 Critical"); return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); } } }
Last updated