TCIS.Logging.Hosting
1.0.5
See the version list below for details.
dotnet add package TCIS.Logging.Hosting --version 1.0.5
NuGet\Install-Package TCIS.Logging.Hosting -Version 1.0.5
<PackageReference Include="TCIS.Logging.Hosting" Version="1.0.5" />
<PackageVersion Include="TCIS.Logging.Hosting" Version="1.0.5" />
<PackageReference Include="TCIS.Logging.Hosting" />
paket add TCIS.Logging.Hosting --version 1.0.5
#r "nuget: TCIS.Logging.Hosting, 1.0.5"
#:package TCIS.Logging.Hosting@1.0.5
#addin nuget:?package=TCIS.Logging.Hosting&version=1.0.5
#tool nuget:?package=TCIS.Logging.Hosting&version=1.0.5
TCIS.Logging.Hosting
Composition package for application logging: real TCIS writers, ECS Serilog defaults, Autofac interception, exception classification, request context, lifecycle logging, and original failing service propagation over internal HTTP/gRPC calls.
Targets: net6.0, net8.0, net48, and net472. The ASP.NET Core entrypoints
below work on both .NET 6 and .NET 8; Framework applications use RunFramework.
using TCIS.Logging.Hosting.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.AddTLoggingHost();
var app = builder.Build();
app.MapControllers();
await app.RunAsync();
To capture builder/configuration/build failures as well, use the lifecycle wrapper:
using TCIS.Logging.Hosting;
await TLoggingHost.RunAsync(args,
builder => builder.Services.AddScoped<IOrderService, OrderService>(),
app => app.MapControllers());
Only this package needs to be referenced. Business registrations and endpoints remain application responsibilities. No logging endpoint is exposed by default.
An A → B → C failure records service.name = a, custom.error.origin_service = c,
and custom.error.propagation_path = [a,b,c] at A (these fields are outside the OPS v1.4 field catalog; they are
written by default and omitted when TLogSettings:EmitExtensionFields=false). All participating applications
must adopt the new package, using TCIS internal client extensions. Without peer
metadata, only the immediate dependency can be identified.
Ngữ cảnh truy vết tự điền trên mọi bản ghi, kể cả log của framework (Wolverine, EF Core, Kestrel...)
và consumer không có request HTTP: trace.id/span.id lấy từ Activity.Current; transaction.id lấy
từ WorkContext (correlation id), không có thì dùng span gốc cục bộ của tiến trình, không có Activity
thì sinh Guid; user.name là anonymous khi chưa có người dùng. Giá trị caller đã đặt không bị ghi đè.
application.site_code lấy từ WorkContext.Tenant.SiteCode (kể cả accessor tự dựng ngữ cảnh lúc đọc),
không có thì dùng TLogSettings:SiteCode. Log của framework cũng đi theo thứ tự này.
message luôn là một dòng, tối đa 512 ký tự (OPS mục 5): xuống dòng/tab gộp thành dấu cách, quá dài thì
cắt và thêm .... Nội dung lỗi đầy đủ vẫn nằm ở error.message và error.stack_trace.
Log của framework mức ERROR/FATAL không kèm exception (driver Oracle, EF Core...) vẫn là bản ghi lỗi:
custom.log_type=error, error.code=SYS-UNK-9999 (chưa phân loại), error.type=UnclassifiedError. Bản ghi
framework có custom.code.namespace/class lấy từ tên logger. log.origin.function của log lỗi framework
lấy từ stack tại nơi ghi log (frame đầu tiên ngoài hạ tầng logging, đã gỡ tên <Run>d__5.MoveNext của
async/lambda); chỉ chụp stack cho mức ERROR/FATAL. Mã tenant ghi ở user.tenant_id (danh mục OPS v1.4), song song với organization.id (tên cũ, dashboard OPS và log eBerth
đang đọc). Thời gian xử lý ghi ở event.duration_ms (mili giây, tên trường OPS), kèm event.duration (nano giây) và
custom.duration_ms. Các trường mở rộng này (cùng custom.tcis_logging_version, custom.error.owner/origin_*) mặc định
bật; đặt TLogSettings:EmitExtensionFields=false để bản ghi chỉ còn đúng trường của danh mục.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Framework | net472 is compatible. net48 is compatible. net481 was computed. |
-
.NETFramework 4.7.2
- Autofac (>= 8.1.1)
- Autofac.Extensions.DependencyInjection (>= 10.0.0)
- Autofac.Extras.DynamicProxy (>= 7.1.0)
- Autofac.WebApi2 (>= 6.1.1)
- Castle.Core.AsyncInterceptor (>= 2.1.0)
- Elastic.CommonSchema (>= 8.11.0)
- Microsoft.AspNet.WebApi.Core (>= 5.3.0)
- Microsoft.AspNet.WebApi.WebHost (>= 5.3.0)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.0)
- Microsoft.Bcl.TimeProvider (>= 9.0.0)
- Microsoft.Extensions.Configuration (>= 9.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 9.0.0)
- Microsoft.Extensions.Configuration.Json (>= 9.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Http (>= 9.0.0)
- Microsoft.Extensions.Logging (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Options (>= 9.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.0)
- Serilog (>= 4.1.0)
- Serilog.Extensions.Hosting (>= 8.0.0)
- Serilog.Settings.Configuration (>= 8.0.4)
- Serilog.Sinks.Async (>= 2.1.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.File (>= 6.0.0)
- System.Diagnostics.DiagnosticSource (>= 9.0.0)
- System.Text.Encodings.Web (>= 9.0.0)
- System.Text.Json (>= 9.0.0)
- System.Threading.Channels (>= 8.0.0)
- TCIS.Logging.Autofac (>= 1.0.5)
- TCIS.Logging.Serilog (>= 1.0.5)
-
.NETFramework 4.8
- Autofac (>= 8.1.1)
- Autofac.Extensions.DependencyInjection (>= 10.0.0)
- Autofac.Extras.DynamicProxy (>= 7.1.0)
- Autofac.WebApi2 (>= 6.1.1)
- Castle.Core.AsyncInterceptor (>= 2.1.0)
- Elastic.CommonSchema (>= 8.11.0)
- Microsoft.AspNet.WebApi.Core (>= 5.3.0)
- Microsoft.AspNet.WebApi.WebHost (>= 5.3.0)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.0)
- Microsoft.Bcl.TimeProvider (>= 9.0.0)
- Microsoft.Extensions.Configuration (>= 9.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 9.0.0)
- Microsoft.Extensions.Configuration.Json (>= 9.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Http (>= 9.0.0)
- Microsoft.Extensions.Logging (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Options (>= 9.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.0)
- Serilog (>= 4.1.0)
- Serilog.Extensions.Hosting (>= 8.0.0)
- Serilog.Settings.Configuration (>= 8.0.4)
- Serilog.Sinks.Async (>= 2.1.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.File (>= 6.0.0)
- System.Diagnostics.DiagnosticSource (>= 9.0.0)
- System.Text.Encodings.Web (>= 9.0.0)
- System.Text.Json (>= 9.0.0)
- System.Threading.Channels (>= 8.0.0)
- TCIS.Logging.Autofac (>= 1.0.5)
- TCIS.Logging.Serilog (>= 1.0.5)
-
net6.0
- Autofac (>= 8.1.1)
- Autofac.Extensions.DependencyInjection (>= 10.0.0)
- Autofac.Extras.DynamicProxy (>= 7.1.0)
- Castle.Core.AsyncInterceptor (>= 2.1.0)
- Dapper (>= 2.1.66)
- Elastic.CommonSchema (>= 8.11.0)
- FluentValidation (>= 11.11.0)
- FluentValidation.AspNetCore (>= 11.3.0)
- FluentValidation.DependencyInjectionExtensions (>= 11.11.0)
- Google.Protobuf (>= 3.28.2)
- Grpc.AspNetCore (>= 2.66.0)
- Grpc.Net.Client (>= 2.66.0)
- Grpc.Net.ClientFactory (>= 2.66.0)
- Grpc.Tools (>= 2.66.0)
- Microsoft.AspNetCore.Http.Abstractions (>= 2.2.0)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.1)
- Microsoft.Bcl.TimeProvider (>= 9.0.0)
- Microsoft.EntityFrameworkCore (>= 6.0.36)
- Microsoft.EntityFrameworkCore.Relational (>= 6.0.36)
- Microsoft.Extensions.Caching.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Caching.Memory (>= 8.0.1)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 9.0.0)
- Microsoft.Extensions.Configuration.Json (>= 8.0.1)
- Microsoft.Extensions.Configuration.UserSecrets (>= 8.0.1)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 9.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Hosting (>= 8.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Http (>= 9.0.0)
- Microsoft.Extensions.Http.Resilience (>= 8.10.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 8.0.0)
- OpenTelemetry (>= 1.15.3)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.15.3)
- OpenTelemetry.Extensions.Hosting (>= 1.15.3)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.15.2)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.15.1-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.15.1-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.15.1)
- OpenTelemetry.Instrumentation.MassTransit (>= 1.0.0-beta.3)
- OpenTelemetry.Instrumentation.Runtime (>= 1.15.1)
- Polly (>= 8.5.1)
- RestEase (>= 1.6.4)
- RestEase.HttpClientFactory (>= 1.6.4)
- Serilog (>= 4.1.0)
- Serilog.Extensions.Hosting (>= 8.0.0)
- Serilog.Settings.Configuration (>= 8.0.4)
- Serilog.Sinks.Async (>= 2.1.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.File (>= 6.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.0)
- System.Text.Encodings.Web (>= 9.0.0)
- System.Text.Json (>= 8.0.6)
- System.Threading.Channels (>= 8.0.0)
- TCIS.AspNetCore (>= 1.0.5)
- TCIS.Http.Grpc (>= 1.0.5)
- TCIS.Http.RestEase (>= 1.0.5)
- TCIS.Logging.Autofac (>= 1.0.5)
- TCIS.Logging.Serilog (>= 1.0.5)
- TCIS.Observability (>= 1.0.5)
- TCIS.Persistence.EntityFrameworkCore (>= 1.0.5)
- TCIS.Pluggable.Engine.Autofac (>= 1.0.5)
-
net8.0
- Autofac (>= 8.1.1)
- Autofac.Extensions.DependencyInjection (>= 10.0.0)
- Autofac.Extras.DynamicProxy (>= 7.1.0)
- Castle.Core.AsyncInterceptor (>= 2.1.0)
- Dapper (>= 2.1.66)
- Elastic.CommonSchema (>= 8.11.0)
- FluentValidation (>= 11.11.0)
- FluentValidation.AspNetCore (>= 11.3.0)
- FluentValidation.DependencyInjectionExtensions (>= 11.11.0)
- Google.Protobuf (>= 3.28.2)
- Grpc.AspNetCore (>= 2.66.0)
- Grpc.Net.Client (>= 2.66.0)
- Grpc.Net.ClientFactory (>= 2.66.0)
- Grpc.Tools (>= 2.66.0)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.0)
- Microsoft.EntityFrameworkCore (>= 8.0.13)
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.13)
- Microsoft.Extensions.Caching.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Caching.Memory (>= 8.0.1)
- Microsoft.Extensions.Configuration (>= 9.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 9.0.0)
- Microsoft.Extensions.Configuration.Json (>= 9.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 9.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Http (>= 9.0.0)
- Microsoft.Extensions.Http.Resilience (>= 9.1.0)
- Microsoft.Extensions.Logging (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Options (>= 9.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 8.0.0)
- OpenTelemetry (>= 1.15.3)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.15.3)
- OpenTelemetry.Extensions.Hosting (>= 1.15.3)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.15.2)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.15.1-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.15.1-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.15.1)
- OpenTelemetry.Instrumentation.MassTransit (>= 1.0.0-beta.3)
- OpenTelemetry.Instrumentation.Runtime (>= 1.15.1)
- Polly (>= 8.5.1)
- RestEase (>= 1.6.4)
- RestEase.HttpClientFactory (>= 1.6.4)
- Serilog (>= 4.1.0)
- Serilog.AspNetCore (>= 8.0.3)
- Serilog.Extensions.Hosting (>= 8.0.0)
- Serilog.Settings.Configuration (>= 8.0.4)
- Serilog.Sinks.Async (>= 2.1.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.File (>= 6.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.0)
- System.Text.Encodings.Web (>= 9.0.0)
- System.Text.Json (>= 9.0.0)
- System.Threading.Channels (>= 8.0.0)
- TCIS.AspNetCore (>= 1.0.5)
- TCIS.Http.Grpc (>= 1.0.5)
- TCIS.Http.RestEase (>= 1.0.5)
- TCIS.Logging.Autofac (>= 1.0.5)
- TCIS.Logging.Serilog (>= 1.0.5)
- TCIS.Observability (>= 1.0.5)
- TCIS.Persistence.EntityFrameworkCore (>= 1.0.5)
- TCIS.Pluggable.Engine.Autofac (>= 1.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.6 | 37 | 10/20/2026 |
| 1.0.6-rc.1 | 29 | 10/20/2026 |
| 1.0.5 | 56 | 10/19/2026 |
| 1.0.4 | 55 | 10/13/2026 |
| 1.0.3 | 62 | 10/13/2026 |
| 1.0.2 | 66 | 10/12/2026 |
| 1.0.2-rc.1 | 52 | 10/12/2026 |
| 1.0.1-rc.10 | 92 | 10/8/2026 |
| 1.0.1-rc.9 | 54 | 10/8/2026 |
| 1.0.1-rc.8 | 53 | 10/8/2026 |
| 1.0.1-rc.7 | 60 | 10/8/2026 |
| 1.0.1-rc.6 | 57 | 10/8/2026 |
| 1.0.1-rc.5 | 63 | 10/7/2026 |
| 1.0.1-rc.4 | 53 | 10/7/2026 |
| 1.0.1-rc.3 | 54 | 10/7/2026 |
| 1.0.1-rc.2 | 79 | 10/5/2026 |