如何在systemd运行的.NET 8.0应用中禁用InfluxDB日志刷屏journalctl
问题:.NET 8 Worker自包含部署后InfluxDB.Client日志泛滥
我在.NET 8.0 Worker应用中使用InfluxDB.Client,本地通过dotnet run运行时不会产生下述日志,但编译为自包含程序并通过systemd在控制器上运行时,每次向InfluxDB发送数据都会生成大量重复日志,填满journalctl:
Sep 04 02:52:12 compulab-imx8mp TSLogger[1138]: Flushing batches before shutdown. Sep 04 02:52:12 compulab-imx8mp TSLogger[1138]: The data was successfully written to InfluxDB 2. Sep 04 02:52:12 compulab-imx8mp TSLogger[1138]: The batch item: OnNext(RestSharp.RestResponse) was processed successfully. Sep 04 02:52:12 compulab-imx8mp TSLogger[1138]: The WriteApi was disposed. Sep 04 02:52:12 compulab-imx8mp TSLogger[1138]: The data was successfully written to InfluxDB 2. Sep 04 02:52:12 compulab-imx8mp TSLogger[1138]: The batch item: OnNext(RestSharp.RestResponse) was processed successfully. Sep 04 02:52:12 compulab-imx8mp TSLogger[1138]: The WriteApi was disposed.
相关代码
InfluxDB操作代码(C#)
string tokenInfluxDb = cabinetConfig.InfluxDb.Token; string urlInfluxDb = cabinetConfig.InfluxDb.Url; string org = cabinetConfig.InfluxDb.Org; string bucket = cabinetConfig.InfluxDb.Bucket; clientInfluxDb = new InfluxDBClient(urlInfluxDb, tokenInfluxDb); var point = PointData .Measurement(item.Cage) .Field(item.MeasurementId, value) .Tag("sn", item.SerialNumber) .Timestamp(DateTime.UtcNow, WritePrecision.Ns); LogToDb(point); async void LogToDb(PointData point) { using (var writeApi = clientInfluxDb.GetWriteApi()) { writeApi.WritePoint(point, bucket, org); } }
Worker.csproj配置
<TargetFramework>net8.0</TargetFramework> <PackageReference Include="InfluxDB.Client" Version="4.14.0" />
systemd服务文件
[Unit] Description=InfluxDBWorker [Service] ExecStartPre=/bin/sleep 30 WorkingDirectory=/home/usr/application/InfluxDBWorker ExecStart=/home/usr/application/InfluxDBWorker/InfluxDBWorker Restart=always # Restart service after 60 seconds if the dotnet service crashes: RestartSec=60 KillSignal=SIGINT SyslogIdentifier=InfluxDBWorker User=root Environment=DOTNET_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target
已尝试的无效操作
- 在环境变量和
appsettings.json中设置日志级别为Warning - 在
journald.conf中配置ForwardToConsole=no - 查阅过InfluxDB.Client相关问题但未解决
内容的提问来源于stack exchange,提问作者Ingar Hjelle
相关产品推荐
相关产品推荐

