Serilog.Sinks.GoogleCloudLogging
5.0.0
dotnet add package Serilog.Sinks.GoogleCloudLogging --version 5.0.0
NuGet\Install-Package Serilog.Sinks.GoogleCloudLogging -Version 5.0.0
<PackageReference Include="Serilog.Sinks.GoogleCloudLogging" Version="5.0.0" />
paket add Serilog.Sinks.GoogleCloudLogging --version 5.0.0
#r "nuget: Serilog.Sinks.GoogleCloudLogging, 5.0.0"
// Install Serilog.Sinks.GoogleCloudLogging as a Cake Addin #addin nuget:?package=Serilog.Sinks.GoogleCloudLogging&version=5.0.0 // Install Serilog.Sinks.GoogleCloudLogging as a Cake Tool #tool nuget:?package=Serilog.Sinks.GoogleCloudLogging&version=5.0.0
Serilog.Sinks.GoogleCloudLogging
Serilog sink that writes events to Google Cloud Logging.
- Built for
net6.0
,net5.0
,netstandard2.0
- Release Notes
Usage
Install package from Nuget:
dotnet add package Serilog.Sinks.GoogleCloudLogging
Configure in code:
var config = new GoogleCloudLoggingSinkOptions { ProjectId = "YOUR_PROJECT_ID" };
Log.Logger = new LoggerConfiguration().WriteTo.GoogleCloudLogging(config).CreateLogger();
Or configure with config file:
This requires the serilog-settings-configuration
package.
"Serilog": {
"Using": [ "Serilog.Sinks.GoogleCloudLogging" ],
"MinimumLevel": "Information",
"WriteTo": [
{
"Name": "GoogleCloudLogging",
"Args": {
"projectID": "PROJECT-ID-12345",
"restrictedToMinimumLevel": "Information",
"labels": {
"foo": "bar"
}
}
}
]
}
var config = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).Build();
Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(config).CreateLogger();
- Serilog example for .NET 6: https://blog.datalust.co/using-serilog-in-net-6/
GCP Integration
Authentication
This library uses the Google Cloud .NET client and Application Default Credentials. The Logs Writer
permission is required to send logs. There are several different ways to set credentials:
- GCE, GKE, Cloud Run, AppEngine and other managed services will have the Application Default Credentials set to the active service account for the resource and can be used without any additional configuration.
- Authenticate manually with the gcloud SDK on a server to set the Application Default Credentials.
- Set the
GOOGLE_APPLICATION_CREDENTIALS
environment variable to specify the path to your JSON credentials file. - Set the
GoogleCredentialJson
config option to pass in the contents of your JSON credentials file.
Log Output
- Serilog is designed for structured logging which is fully supported by Google Cloud. Logs are sent as a JSON object (
JsonPayload
in the protobuf API) with labels, properties, metadata and any other data like stack traces automatically attached. - Numeric values in labels and properties will be converted to
double
during serialization because that is the only numeric type supported by JSON. Large integers and floating-point values will lose precision. If you want the exact value preserved then log it as a string instead. - View logs in the GCP Logs Explorer: https://console.cloud.google.com/logs/viewer
Sink Options
Option | Description |
---|---|
ProjectId | ID (not name) of GCP project where logs will be sent. Optional if running in GCP. Required if running elsewhere or to override the destination. |
ResourceType | Resource type for logs. Automatically identified if running in GCP or will default to "global". See Monitored Resources and Services for supported types. |
LogName | Name of the log. Default is "Default", or will use SourceContext is setting is enabled. |
Labels | Optional Dictionary<string, string> labels added to all log entries. |
ResourceLabels | Optional Dictionary<string, string> labels added to all log entries, for the resource type. See Monitored Resources and Services for recognized labels. |
ServiceName | Name of the service added as metadata to log entries. Required for logged exceptions to be forwarded to StackDriver Error Reporting. |
ServiceVersion | Version of the service added as metadata to log entries. Required for logged exceptions to be forwarded to StackDriver Error Reporting. |
UseSourceContextAsLogName | The log name for a log entry will be set to the SourceContext property if available. Default is true . |
UseLogCorrelation | Integrate logs with Cloud Trace by setting Trace , SpanId , TraceSampled properties if available. Default is true . |
GoogleCredentialJson | Override Application Default Credentials with the content of a JSON credential file. |
Log Level Mapping
This table shows the mapping from Serilog LogLevel
to Google Cloud Logging LogSeverity
Serilog | Cloud Logging |
---|---|
Verbose | Debug |
Debug | Debug |
Information | Info |
Warning | Warning |
Error | Error |
Fatal | Critical |
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. 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 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Google.Cloud.Logging.V2 (>= 4.0.0)
- Serilog (>= 2.11.0)
- Serilog.Sinks.PeriodicBatching (>= 2.3.1)
- System.Text.Encodings.Web (>= 6.0.0)
-
net5.0
- Google.Cloud.Logging.V2 (>= 4.0.0)
- Serilog (>= 2.11.0)
- Serilog.Sinks.PeriodicBatching (>= 2.3.1)
- System.Text.Encodings.Web (>= 6.0.0)
-
net6.0
- Google.Cloud.Logging.V2 (>= 4.0.0)
- Serilog (>= 2.11.0)
- Serilog.Sinks.PeriodicBatching (>= 2.3.1)
- System.Text.Encodings.Web (>= 6.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Serilog.Sinks.GoogleCloudLogging:
Package | Downloads |
---|---|
PegasusLoggingService
Package Description |
|
Pegasus_Logging
Package Description |
|
Findep.AspNetCore.Microservices
Core Library for FINDEP Microservices based on ASP.NET Core |
|
Neocortex.Extension
Neocortex.Extension es una biblioteca de extensiones para .NET Core que proporciona integraciones fáciles para logging con Google y caching. Mejora el rendimiento de tus aplicaciones con un sistema de caché eficiente y una integración directa con los servicios de logging de Google. Características: Logging con Google: Registra eventos directamente en Google para monitoreo. Caché eficiente: Optimiza el rendimiento con almacenamiento en caché. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.0.0 | 2,354,686 | 6/14/2022 |
4.0.0 | 233,056 | 4/5/2022 |
3.7.0 | 145,992 | 2/20/2022 |
3.6.0 | 287,800 | 8/30/2021 |
3.5.0 | 49,962 | 6/10/2021 |
3.4.0 | 27,546 | 4/25/2021 |
3.3.3 | 67,539 | 3/15/2021 |
3.3.0 | 91,459 | 9/21/2020 |
3.2.0 | 86,264 | 6/18/2020 |
3.0.0 | 70,548 | 3/20/2020 |
2.4.1 | 2,638 | 3/18/2020 |
2.4.0 | 28,897 | 2/5/2020 |
2.3.0 | 2,067 | 1/15/2020 |
2.2.1 | 1,840 | 1/12/2020 |
2.2.0 | 28,139 | 10/8/2019 |
2.1.1 | 3,249 | 10/6/2019 |
2.1.0 | 28,568 | 9/17/2019 |
2.0.0 | 163,996 | 5/24/2019 |
1.10.0 | 49,296 | 4/4/2019 |
1.9.0 | 705 | 4/4/2019 |
1.7.0 | 95,765 | 2/8/2019 |
1.6.0 | 6,163 | 2/7/2019 |
1.5.0 | 41,776 | 10/5/2018 |
1.4.7 | 7,155 | 9/10/2018 |
1.4.6 | 14,337 | 6/2/2018 |
1.4.5 | 2,104 | 5/19/2018 |
1.4.0 | 1,068 | 5/19/2018 |
1.3.1 | 3,121 | 12/16/2017 |
1.3.0 | 1,448 | 12/8/2017 |
1.2.0 | 1,179 | 11/30/2017 |
1.1.0 | 1,333 | 11/28/2017 |
1.0.0 | 1,845 | 9/6/2017 |