Ir para o conteúdo do rodapé
AJUDA DO .NET

Registro de logs do Prism (Como funciona para desenvolvedores)

Os aplicativos de console, apesar da ausência de uma interface gráfica de usuário, geralmente exigem mecanismos robustos de registro de logs para rastrear erros, monitorar o desempenho do aplicativo e depurar problemas com eficiência. O Prism.Plugin.Logging , uma extensão do framework Prism Logging, oferece uma solução completa de registro de logs para aplicações .NET , incluindo suporte para diversos provedores de logs.

Neste artigo, exploramos como integrar o Prism Logging em aplicativos de console usando o IronPDF , uma poderosa biblioteca .NET para trabalhar com documentos PDF. Ao combinar essas ferramentas, os desenvolvedores podem implementar funcionalidades avançadas de registro de logs em seus aplicativos de console, aprimorando os recursos de manutenção e solução de problemas.

Introdução ao Prism Logging

O Prism.Plugin.Logging estende o Prism, um framework popular para a criação de aplicações XAML, fornecendo recursos abrangentes de registro de logs. Com suporte para múltiplos provedores de registro, como NLog, Serilog e Microsoft.Extensions.Logging, o Prism.Plugin.Logging oferece flexibilidade e opções de personalização para atender a diversos requisitos de aplicação.

Vantagens de usar o registro de dados Prism

Configuração flexível de registro de logs: o Prism.Plugin.Logging permite que os desenvolvedores configurem diversos provedores de registro de logs de forma integrada, incluindo opções populares como NLog, Serilog e Microsoft.Extensions.Logging.

Suporte a registro estruturado: os desenvolvedores podem registrar dados estruturados com suas mensagens usando o Prism.Plugin.Logging. Essa função é especialmente útil em cenários que envolvem aplicativos de console, onde dados contextuais abrangentes, incluindo registros de data e hora, códigos de erro ou atividades do usuário, devem ser registrados e adicionados aos relatórios de log produzidos pelo IronPDF.

Como usar o registro de dados do Prism

  1. Crie um novo projeto C#
  2. Instale o pacote de registro Prism.
  3. Crie um objeto para o SyslogLogger e passe a configuração como parâmetro.
  4. Chame o método de registro sempre que necessário e passe a mensagem de registro e o nível de registro.
  5. Elimine o objeto de log ao final.

Primeiros passos com o Prism Logs

Configurando o Prism em Projetos C

Integrar o Prism em um projeto C# é fácil. Para adicionar o Prism, é necessário utilizar o NuGet, o gerenciador de pacotes .NET da Microsoft. Esta biblioteca fornece as ferramentas e bibliotecas necessárias para incorporar os Prism Logs em seus projetos.

Prism Logging (Como funciona para desenvolvedores): Figura 1 - Instale o Prism usando o Gerenciador de Pacotes NuGet para a solução, pesquisando Prism.Plugin.Logging.Loggly na barra de pesquisa do Gerenciador de Pacotes NuGet , selecione o projeto e clique no botão Instalar.

Implementando o Prism em aplicações .NET

O Prism é compatível com diversos tipos de aplicativos .NET , incluindo Windows Forms (WinForms) e aplicativos de console do Windows. Embora cada framework seja implementado de forma diferente, o conceito básico é sempre o mesmo, auxiliando-nos no registro dos dados relacionados à sua aplicação.

Criando um novo projeto no Visual Studio

Selecione o menu Arquivo no aplicativo Visual Studio. Clique em "Novo projeto" e, em seguida, escolha "Aplicativo de console".

Prism Logging (Como funciona para desenvolvedores): Figura 2 - Abra o Visual Studio e selecione Novo Projeto - Selecione Aplicativo de Console

Após selecionar o local do arquivo, insira o nome do projeto na área de texto designada. Em seguida, como mostrado no exemplo abaixo, selecione a .NET Framework necessária clicando no botão Criar.

Prism Logging (Como funciona para desenvolvedores): Figura 3 - Em seguida, configure seu projeto especificando o nome e o local desejados. Selecione a versão do .NET Framework correspondente ao seu projeto e clique no botão Criar.

O aplicativo escolhido determinará como o projeto do Visual Studio será organizado. Basta abrir o arquivo program.cs para começar a adicionar código ao aplicativo e compilá-lo. Você pode usar o Windows, o console ou o aplicativo da web.

Após isso, a biblioteca pode ser adicionada e o código testado.

Um exemplo básico de utilização de logs do Prism

No exemplo de código abaixo, inicializamos o objeto de log do Prism e, em seguida, adicionamos diferentes níveis de registro, um por um, aos logs do Prism, salvando todos os logs e sua criticidade em uma lista.

using Prism.Logging.Syslog;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
    public class Demo
    {
        public string Name { get; set; }
        public int Age { get; set; }

        // Configure the logger options
        static Options genOptions = new Options
        {
            HostNameOrIp = "127.0.0.1",
            Port = 514,
            AppNameOrTag = "LoggingDemo"
        };

        static SyslogLogger logger = new SyslogLogger(genOptions);
        static IList<LogData> Loglst = new List<LogData>();

        static async Task Main(string[] args)
        {
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
            PerformApplicationLogic();
            MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information);
        }

        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");

            // Simulate error
            try
            {
                throw new Exception("Simulated Exception");
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }

        // Logs messages and their levels
        static void MessageLog(string message, Prism.Logging.Syslog.Level level)
        {
            Loglst.Add(new LogData { Message = message, Level = level.ToString() });
            logger.Log(message, level);
        }

        public class LogData
        {
            public string Message { get; set; }
            public string Level { get; set; }
        }

        public class Options : ISyslogOptions
        {
            public string HostNameOrIp { get; set; }
            public int? Port { get; set; }
            public string AppNameOrTag { get; set; }
        }
    }
}
using Prism.Logging.Syslog;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
    public class Demo
    {
        public string Name { get; set; }
        public int Age { get; set; }

        // Configure the logger options
        static Options genOptions = new Options
        {
            HostNameOrIp = "127.0.0.1",
            Port = 514,
            AppNameOrTag = "LoggingDemo"
        };

        static SyslogLogger logger = new SyslogLogger(genOptions);
        static IList<LogData> Loglst = new List<LogData>();

        static async Task Main(string[] args)
        {
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
            PerformApplicationLogic();
            MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information);
        }

        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");

            // Simulate error
            try
            {
                throw new Exception("Simulated Exception");
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }

        // Logs messages and their levels
        static void MessageLog(string message, Prism.Logging.Syslog.Level level)
        {
            Loglst.Add(new LogData { Message = message, Level = level.ToString() });
            logger.Log(message, level);
        }

        public class LogData
        {
            public string Message { get; set; }
            public string Level { get; set; }
        }

        public class Options : ISyslogOptions
        {
            public string HostNameOrIp { get; set; }
            public int? Port { get; set; }
            public string AppNameOrTag { get; set; }
        }
    }
}
Imports Prism.Logging.Syslog
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks

Friend Class Program
	Public Class Demo
		Public Property Name() As String
		Public Property Age() As Integer

		' Configure the logger options
		Private Shared genOptions As New Options With {
			.HostNameOrIp = "127.0.0.1",
			.Port = 514,
			.AppNameOrTag = "LoggingDemo"
		}

		Private Shared logger As New SyslogLogger(genOptions)
		Private Shared Loglst As IList(Of LogData) = New List(Of LogData)()

		Shared Async Function Main(ByVal args() As String) As Task
			MessageLog("Application started.", Prism.Logging.Syslog.Level.Information)
			PerformApplicationLogic()
			MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information)
		End Function

		Private Shared Sub PerformApplicationLogic()
			' Example application logic
			Console.WriteLine("Performing application logic...")

			' Simulate error
			Try
				Throw New Exception("Simulated Exception")
			Catch ex As Exception
				MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error)
			End Try
		End Sub

		' Logs messages and their levels
		Private Shared Sub MessageLog(ByVal message As String, ByVal level As Prism.Logging.Syslog.Level)
			Loglst.Add(New LogData With {
				.Message = message,
				.Level = level.ToString()
			})
			logger.Log(message, level)
		End Sub

		Public Class LogData
			Public Property Message() As String
			Public Property Level() As String
		End Class

		Public Class Options
			Implements ISyslogOptions

			Public Property HostNameOrIp() As String
			Public Property Port() As Integer?
			Public Property AppNameOrTag() As String
		End Class
	End Class
End Class
$vbLabelText   $csharpLabel

Os relatórios de registro são gerados pelo Prism Logging. Estamos utilizando uma ferramenta chamada Kiwi Syslog Service Manager para monitorar os logs do Prism.

Arquivo de log do Prism de saída

Registro de logs do Prism (Como funciona para desenvolvedores): Figura 4 - Monitoramento dos relatórios de log do Prism gerados usando a ferramenta Kiwi Syslog Service Manager.

Operações de registro de dados Prism

Registro extensível

As funcionalidades do Prism.Plugin.Logging são ampliadas por meio do registro de logs, o que proporciona mais funcionalidades e flexibilidade. Oferece uma variedade de opções de configuração para ajustar os níveis de registro, os destinos de registro e outras variáveis ​​para atender às necessidades de registro do seu aplicativo.

Vários destinos de registro

Com o Prism.Plugin.Logging, você pode encaminhar mensagens de log para diversos locais, incluindo o console, arquivos, bancos de dados e outros serviços de registro. Graças a essa flexibilidade, você pode selecionar os melhores destinos de registro de logs de acordo com os requisitos e o ambiente da sua aplicação.

Registradores personalizados

Com o plugin, você pode implementar a interface ILoggerFacade do Prism para construir registradores personalizados. Isso permite que você crie recursos de registro personalizados com base nas necessidades do seu aplicativo ou faça a interface com estruturas de registro de terceiros.

Criar registro com o Prism Logs

Os registros do Prism podem ser facilmente criados com algumas linhas de código. Abaixo segue um exemplo de como criar um registro.

static Options genOptions = new Options
{
    HostNameOrIp = "127.0.0.1",
    Port = 514,
    AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
static Options genOptions = new Options
{
    HostNameOrIp = "127.0.0.1",
    Port = 514,
    AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
Private Shared genOptions As New Options With {
	.HostNameOrIp = "127.0.0.1",
	.Port = 514,
	.AppNameOrTag = "LoggingDemo"
}
Private Shared logger As New SyslogLogger(genOptions)
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information)
$vbLabelText   $csharpLabel

Integrando o Prism Logging e o IronPDF

Usando Prism e IronPDF em conjunto

A combinação do Prism com o IronPDF em um projeto C# abre possibilidades interessantes. O IronPDF é uma ferramenta fantástica para converter esse conteúdo em PDFs, embora o Prism seja uma ótima ferramenta para trabalhar com registros. Graças a essa conectividade, os programadores podem criar aplicativos que registram o item em um documento PDF personalizado.

Registro de dados Prism com IronPDF

Ao criar um aplicativo de console do Windows que utiliza o Prism Logs, os usuários podem interagir com os registros dentro do seu programa. Este controle deve caber no console com bastante espaço livre para a criação de registros. Adicionar operações de registro do servidor e registros HTTP.

Instale o IronPDF

  • Abra o projeto do Visual Studio .
  • Selecione "Ferramentas" > "Gerenciador de Pacotes NuGet " > "Console do Gerenciador de Pacotes".

    • No console do Gerenciador de Pacotes, digite o seguinte comando e pressione Enter:
    Install-Package IronPdf
  • Outra forma de instalar o IronPDF é usando o Gerenciador de Pacotes NuGet para Soluções.
    • Procure o pacote IronPDF nos resultados da pesquisa, selecione-o e clique no botão "Instalar". O Visual Studio cuidará do download e da instalação automaticamente.

Prism Logging (Como funciona para desenvolvedores): Figura 5 - Instale o IronPDF usando o Gerenciador de Pacotes NuGet para a Solução, pesquisando IronPDF na barra de pesquisa do Gerenciador de Pacotes NuGet , selecionando o projeto e clicando no botão Instalar.

  • O NuGet fará o download e instalará o pacote IronPDF e quaisquer dependências necessárias para o seu projeto.
  • Depois de instalar o IronPDF , você poderá usá-lo em seu projeto.

Instale através do site do NuGet.

Visite a página do IronPDF emhttps://www.nuget.org/packages/IronPdf Acesse o site do NuGet para saber mais sobre os recursos, a compatibilidade e outras opções de download do IronPDF.

Utilize DLL para instalar

Alternativamente, você pode incorporar o IronPDF diretamente em seu projeto usando seu arquivo DLL. Para baixar o arquivo ZIP contendo a DLL, clique neste link . Após descompactar o arquivo, inclua a DLL em seu projeto.

Implementando a lógica

  • Configuração do Renderizador e do Registrador: O software configura o renderizador IronPDF e o registrador Prism.
  • Registro de mensagens: Mensagens com uma categoria e prioridade designadas podem ser registradas usando o método MessageLog() . Neste exemplo, registramos as mensagens de inicialização e parada do aplicativo, bem como quaisquer exceções que ocorram durante a execução do aplicativo.
  • Aplicação da lógica: Uma parte da lógica da aplicação é simulada pelo método PerformApplicationLogic() . Para ilustrar o registro de erros, ele simplesmente produz uma mensagem e, neste caso, gera uma exceção.
  • Criação de um relatório de log em PDF: Após a execução da lógica do aplicativo, o software cria um documento HTML com base nas mensagens registradas. Em seguida, utiliza o recurso RenderHtmlAsPdf() do IronPDF para transformar o documento HTML em um arquivo de log no formato de relatório PDF. O arquivo PDF é então salvo no disco.

Estender o código previamente definido para integrar o código IronPDF :

using IronPdf;

static void GeneratePdfLogReport()
{
    var renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer

    // Generate HTML content for PDF report
    string htmlContent = "<h1>Log Report</h1><ul>";
    foreach (var log in Loglst)
    {
        htmlContent += $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>";
    }
    htmlContent += "</ul>";

    // Generate PDF document
    var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

    // Save PDF file
    string filePath = "log_report.pdf";
    pdfDocument.SaveAs(filePath);
    Console.WriteLine($"PDF log report generated: {filePath}");
}
using IronPdf;

static void GeneratePdfLogReport()
{
    var renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer

    // Generate HTML content for PDF report
    string htmlContent = "<h1>Log Report</h1><ul>";
    foreach (var log in Loglst)
    {
        htmlContent += $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>";
    }
    htmlContent += "</ul>";

    // Generate PDF document
    var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

    // Save PDF file
    string filePath = "log_report.pdf";
    pdfDocument.SaveAs(filePath);
    Console.WriteLine($"PDF log report generated: {filePath}");
}
Imports IronPdf

Shared Sub GeneratePdfLogReport()
	Dim renderer = New ChromePdfRenderer() ' Instantiates Chrome Renderer

	' Generate HTML content for PDF report
	Dim htmlContent As String = "<h1>Log Report</h1><ul>"
	For Each log In Loglst
		htmlContent &= $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>"
	Next log
	htmlContent &= "</ul>"

	' Generate PDF document
	Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

	' Save PDF file
	Dim filePath As String = "log_report.pdf"
	pdfDocument.SaveAs(filePath)
	Console.WriteLine($"PDF log report generated: {filePath}")
End Sub
$vbLabelText   $csharpLabel

Abaixo está o relatório de registro de imagens gerado pelo IronPDF.

Prism Logging (Como funciona para desenvolvedores): Figura 6 - PDF de saída gerado usando o IronPDF e dados do relatório de log do Prism.

Para saber mais sobre as referências de código do IronPDF , consulte aqui .

Conclusão

A integração do Prism.Plugin.Logging com o IronPDF permite que os desenvolvedores incorporem facilmente recursos avançados de registro de logs em aplicativos de terminal. Os desenvolvedores podem aprimorar a manutenção geral do programa, otimizar os recursos de depuração e acelerar as operações de registro de logs utilizando os recursos de ambas as ferramentas. O Prism.Plugin.Logging permite que aplicativos de console obtenham cobertura completa de logs, garantindo recursos robustos de monitoramento e solução de problemas, com a implementação e configuração corretas.

IronPDF oferece uma licença perpétua de um Lite bundle que inclui uma licença permanente, um ano de manutenção de software e uma atualização da biblioteca. A IronPDF oferece licença gratuita para fins de desenvolvimento, sujeita a restrições de tempo e redistribuição. Para obter a avaliação gratuita . Para saber mais sobre os diversos produtos da Iron Software , visite o site deles através do link.

Perguntas frequentes

Como posso integrar o recurso de login em um aplicativo de console .NET?

Você pode integrar o registro de logs em um aplicativo de console .NET usando o Prism.Plugin.Logging, que oferece suporte a vários provedores de logs e uma estrutura de registro de logs estruturada. Para configurá-lo, instale o pacote de logs do Prism, crie os objetos de log necessários e configure seus destinos e níveis de log.

Quais são os benefícios de combinar o Prism Logging com o IronPDF?

A combinação do Prism Logging com o IronPDF permite gerar relatórios de log em PDF, aprimorando a manutenção e a resolução de problemas do aplicativo. O IronPDF pode converter o conteúdo de logs em HTML em documentos PDF, fornecendo um formato portátil para revisão e compartilhamento de logs.

Como posso converter dados de log em um documento PDF no .NET?

Para converter dados de log em um documento PDF no .NET, use o IronPDF para renderizar seus dados de log como HTML e, em seguida, convertê-los em PDF usando métodos como RenderHtmlAsPdf . Isso permite criar relatórios de log detalhados e portáteis.

Quais provedores de registro de logs são compatíveis com o Prism.Plugin.Logging?

O Prism.Plugin.Logging é compatível com diversos provedores de registro de logs, incluindo NLog, Serilog e Microsoft.Extensions.Logging. Essa flexibilidade permite que os desenvolvedores escolham o provedor de registro de logs que melhor se adapte às necessidades de seus projetos.

Como faço para configurar um projeto de registro de logs do Prism no Visual Studio?

Para configurar um projeto de registro de logs do Prism no Visual Studio, crie um novo projeto C#, instale o pacote de registro de logs do Prism usando o Gerenciador de Pacotes NuGet e inicialize a estrutura de registro de logs criando um objeto SyslogLogger e configurando os níveis e destinos de log.

O Prism.Plugin.Logging pode ser usado para configurações de registro personalizadas?

Sim, o Prism.Plugin.Logging suporta configurações de registro personalizadas. Você pode ajustar os níveis de registro, definir registradores personalizados e encaminhar mensagens de registro para vários destinos, permitindo uma configuração de registro sob medida que atenda aos requisitos específicos da aplicação.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim