Serilog.Sinks.GoogleCloudLogging 2.1.1

.NET Standard 1.5
There is a newer version of this package available.
See the version list below for details.
dotnet add package Serilog.Sinks.GoogleCloudLogging --version 2.1.1
NuGet\Install-Package Serilog.Sinks.GoogleCloudLogging -Version 2.1.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Serilog.Sinks.GoogleCloudLogging" Version="2.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Serilog.Sinks.GoogleCloudLogging --version 2.1.1
#r "nuget: Serilog.Sinks.GoogleCloudLogging, 2.1.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Serilog.Sinks.GoogleCloudLogging as a Cake Addin
#addin nuget:?package=Serilog.Sinks.GoogleCloudLogging&version=2.1.1

// Install Serilog.Sinks.GoogleCloudLogging as a Cake Tool
#tool nuget:?package=Serilog.Sinks.GoogleCloudLogging&version=2.1.1


Serilog sink that writes events to Google Cloud Platform Stackdriver Logging. View release notes here:

Getting started

Install package from Nuget:
dotnet add package Serilog.Sinks.GoogleCloudLogging
Configure Logger (using code):
var config = new GoogleCloudLoggingSinkOptions { ProjectId = "YOUR_PROJECT_ID", UseJsonOutput = true };
Log.Logger = new LoggerConfiguration().WriteTo.GoogleCloudLogging(config).CreateLogger();
Configure Logger (using config file):

This requires 'serilog-settings-configuration' to load sinks using an appsettings.json file.

"Serilog": {
  "Using": [ "Serilog.Sinks.GoogleCloudLogging" ],
  "MinimumLevel": "Warning",
  "WriteTo": [
      "Name": "GoogleCloudLogging",
      "Args": {
        "projectID": "YOUR_PROJECT_ID",
        "useJsonOutput": "true",
        "resourceType": "k8s_cluster",
        "resourceLabels": {
          "project_id": "PROJECT-ID-HERE-12345",
          "location": "LOCATION-STRING-HERE-region-name",
          "cluster_name": "CLUSTER-NAME-HERE-container-cluster"
var config = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).Build();
Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(config).CreateLogger();
GCP authentication:

This library uses the Google-Cloud-Dotnet libraries which authenticate using the Application Default Credentials found on the host. This is automatic on GCE VMs or you can use the gcloud SDK to authenticate manually. The service account must have the Logs Writer permission to send logs.

Sink Options

Name Default Description
ProjectId Google Cloud project ID where logs will be sent. Will be automatically set to host project if running in GCP, otherwise required.
ResourceType global Resource type for all log output. Will be automatically discovered if running in GCP, otherwise required. Must be one of the supported types listed in the cloud logging documentation.
LogName Default Name of the log. This is required if UseSourceContextAsLogName is false.
Labels Dictionary<string, string> of properties added to all log entries.
ResourceLabels Dictionary<string, string> of properties added to all log entries, at the resource level. See Monitored Resources and Services for recognized labels.
UseSourceContextAsLogName True The log name for a log entry will be set to the SourceContext property if it's available.
UseJsonOutput False Structured logs can be sent as text with labels or as a JSON object, see details below.
GoogleCredentialJson GCP client libraries use Application Default Credentials. If these are not available or you need to use other credentials, set the JSON text of a credential file directly.
ServiceName Name of the service added as metadata to log entries. Required to forward logged exceptions to StackDriver Error Reporting. Must also set UseJsonOutput to true.
ServiceVersion Version of the service added as metadata to log entries. Defaults to <unknown>.
Output Type

Serilog uses structured logging which means each log line is a formatting template with attached properties that are combined to create the final output. When UseJsonOutput is false, the output is sent as TextPayload to GCP with any properties serialized to string key/value labels.

If UseJsonOutput is set to true, the output will be sent as JsonPayload to maintain the original data types. This is helpful for querying child properties or numeric values in the Log Viewer, and will also capture property names even if they have null values.

WARNING: JSON output only accepts numeric values as double so all numbers will be converted. Large integers and floating-point values will lose precision. If you want the exact value preserved then log it as a string instead.

Viewing Logs

Logs will appear in the Google Cloud Console Log Viewer:

When using default options, logs will appear under these filter settings:

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard1.5 netstandard1.6 netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48 net481
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen30 tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Serilog.Sinks.GoogleCloudLogging:

Package Downloads

ASP.NET Core Web Pack For .NET Core; Include Default Builder;


Package Description


Core Library for FINDEP Microservices based on ASP.NET Core

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.0.0 247,644 6/14/2022
4.0.0 139,376 4/5/2022
3.7.0 93,760 2/20/2022
3.6.0 178,601 8/30/2021
3.5.0 36,789 6/10/2021
3.4.0 22,670 4/25/2021
3.3.3 51,047 3/15/2021
3.3.0 83,170 9/21/2020
3.2.0 72,097 6/18/2020
3.0.0 59,439 3/20/2020
2.4.1 2,220 3/18/2020
2.4.0 26,227 2/5/2020
2.3.0 1,900 1/15/2020
2.2.1 1,701 1/12/2020
2.2.0 27,131 10/8/2019
2.1.1 3,080 10/6/2019
2.1.0 28,338 9/17/2019
2.0.0 160,590 5/24/2019
1.10.0 47,348 4/4/2019
1.9.0 546 4/4/2019
1.7.0 81,060 2/8/2019
1.6.0 3,928 2/7/2019
1.5.0 41,355 10/5/2018
1.4.7 6,974 9/10/2018
1.4.6 14,085 6/2/2018
1.4.5 1,943 5/19/2018
1.4.0 910 5/19/2018
1.3.1 2,923 12/16/2017
1.3.0 1,259 12/8/2017
1.2.0 1,032 11/30/2017
1.1.0 1,120 11/28/2017
1.0.0 1,438 9/6/2017