57 lines
2.0 KiB
C#
57 lines
2.0 KiB
C#
// <copyright file="Program.cs" company="OpenTelemetry Authors">
|
|
// Copyright The OpenTelemetry Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
// </copyright>
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
using OpenTelemetry.Logs;
|
|
|
|
var loggerFactory = LoggerFactory.Create(builder =>
|
|
{
|
|
builder.AddOpenTelemetry(logging =>
|
|
{
|
|
logging.AddConsoleExporter();
|
|
});
|
|
});
|
|
|
|
var logger = loggerFactory.CreateLogger<Program>();
|
|
|
|
logger.FoodPriceChanged("artichoke", 9.99);
|
|
|
|
logger.FoodRecallNotice(
|
|
brandName: "Contoso",
|
|
productDescription: "Salads",
|
|
productType: "Food & Beverages",
|
|
recallReasonDescription: "due to a possible health risk from Listeria monocytogenes",
|
|
companyName: "Contoso Fresh Vegetables, Inc.");
|
|
|
|
// Dispose logger factory before the application ends.
|
|
// This will flush the remaining logs and shutdown the logging pipeline.
|
|
loggerFactory.Dispose();
|
|
|
|
public static partial class ApplicationLogs
|
|
{
|
|
[LoggerMessage(LogLevel.Information, "Food `{name}` price changed to `{price}`.")]
|
|
public static partial void FoodPriceChanged(this ILogger logger, string name, double price);
|
|
|
|
[LoggerMessage(LogLevel.Critical, "A `{productType}` recall notice was published for `{brandName} {productDescription}` produced by `{companyName}` ({recallReasonDescription}).")]
|
|
public static partial void FoodRecallNotice(
|
|
this ILogger logger,
|
|
string brandName,
|
|
string productDescription,
|
|
string productType,
|
|
string recallReasonDescription,
|
|
string companyName);
|
|
}
|