dotnet add package NLog --version 5.2.7
dotnet add package NLog.Web.AspNetCore --version 5.3.7
dotnet add package NLog.Targets.ElasticSearch --version 7.7.0
using NLog.Web;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
// NLog: Setup NLog for Dependency injection
builder.Logging.ClearProviders();
builder.Host.UseNLog();
// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.MapControllers();
app.Run();
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Info"
internalLogFile="./logs/internal-nlog-AspNetCore.txt">
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<!-- the targets to write to -->
<targets>
<!-- File Target for all log messages with basic details -->
<target xsi:type="File" name="allfile" fileName="${aspnet-appbasepath}/logs/nlog-AspNetCore-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}" />
<!-- File Target for own log messages with extra web details using some ASP.NET core renderers -->
<target xsi:type="File" name="ownFile-web" fileName="${aspnet-appbasepath}/logs/nlog-AspNetCore-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
<!--Console Target for hosting lifetime messages to improve Docker / Visual Studio startup detection -->
<target xsi:type="Console" name="lifetimeConsole" layout="${MicrosoftConsoleLayout}" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Output hosting lifetime messages to console target for faster startup detection -->
<logger name="Microsoft.Hosting.Lifetime" minlevel="Info" writeTo="lifetimeConsole, ownFile-web" final="true" />
<!--Skip non-critical Microsoft logs and so log only own logs (BlackHole) -->
<logger name="Microsoft.*" maxlevel="Info" final="true" />
<logger name="System.Net.Http.*" maxlevel="Info" final="true" />
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/[controller]")]
public class HomeController : ControllerBase
{
private readonly ILogger<HomeController> log;
public HomeController(ILogger<HomeController> log)
{
this.log = log;
this.log.LogDebug(1, "NLog injected into HomeController");
}
[HttpGet]
public string Hello()
{
this.log.LogInformation("Hello, this is the index!");
return "hello";
}
}
gcloud auth activate-service-account \ --key-file $(serviceAccount.secureFilePath) 更新image gcloud run services update ezpay-thirdparty \ --image=$(Docker.Registry)/ezpay.thirdparty:$(Build.BuildNumber) \ --update-env-vars ELASTIC_APM_SERVICE_VERSION=$(Build.BuildNumber) \ --region=$(GCP.Region) \ --project=$(GCP.ProjectId)
Dec 25, 2023在左側邊欄上,選擇「搜尋」或前往並尋找您的群組。選擇設定 > 常規 > 權限和群組功能。清除服務帳戶令牌過期複選框。現在您可以為服務帳戶使用者建立沒有到期日的個人存取權杖。
Dec 24, 2023建立ELK Cloud Instance
Dec 22, 2023version: '3.5' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2 container_name: elasticsearch environment: discovery.type: single-node ES_JAVA_OPTS: '-Xms1g -Xmx1g' ELASTIC_USERNAME: elastic
Dec 22, 2023or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up