Logowanie komunikatów w akcji C#
Podsumowanie:W kodzie akcji można korzystać z właściwości Logger, aby zapisywać komunikaty w logach systemowych.
☛
Narzędzia>Akcje>Algorytm C#
Logowanie komunikatów może odbywać się za pomocą metod opisanych w dokumentacji interfejsu ILogger z przestrzeni nazw Microsoft.Extensions.Logging.
Najniższy poziom logowania komunikatów określa ustawienie poziomu logowania w serwisie TenantsAdmin. Na przykład, jeśli ustawiony w TenantsAdmin poziom logowania to Error, komunikaty z akcji C# z niższym poziomem nie będą logowane.
Dostępne są następujące poziomy logowania:
- FATAL (CRITICAL)
- ERROR
- WARNING
- INFO
- DEBUG
- TRACE
Aby skorzystać z udostępnionego mechanizmu należy zaimportować przestrzeń nazw Microsoft.Extensions.Logging za pomocą dyrektywy using na początku kodu:
using Microsoft.Extensions.Logging;W nowo tworzonych skryptach będzie ona dodawana automatycznie.
Przykład skryptu z wykorzystaniem mechanizmu logowania zgodny z dokumentacją przywołaną powyżej:
using System;
using System.Linq;
using System.Text;
using CSharpScript.ActionRunner;
using CSharpScript.SqlRunner;
using CSharpScript.WebServiceRunner;
using CSharpScript.WebServiceRunner.Models;
using Microsoft.Extensions.Logging;
Logger.LogTrace("TRACE");
Logger.LogDebug("DEBUG");
Logger.LogInformation("INFO");
Logger.LogWarning("WARNING");
Logger.LogError("ERROR");
Logger.LogCritical("CRITICAL");
Logger.LogTrace("TRACE: {recordId}", RecordId);
Logger.LogDebug("DEBUG: {recordId}", RecordId);
Logger.LogInformation("INFO: {recordId}", RecordId);
Logger.LogWarning("WARNING: {recordId}", RecordId);
Logger.LogError("ERROR: {recordId}", RecordId);
Logger.LogCritical("CRITICAL: {recordId}", RecordId);
var value = "TEXT";
try
{
var number = int.Parse(value);
}
catch (Exception exc)
{
Logger.LogError(exc, "Error occurred while parsing {value} to integer for record with ID {recordId}", value, RecordId);
}