Prism Günlüğü (Geliştiriciler için Nasıl Çalışır)
Grafik kullanıcı arayüzüne sahip olmamalarına rağmen, konsol uygulamaları genellikle hataları izlemek, uygulama performansını izlemek ve sorunları verimli bir şekilde çözmek için sağlam logging mekanizmalarına ihtiyaç duyar. Prism.Plugin.Logging, Prism Logging framework'ünün bir uzantısı olarak, NET uygulamaları için çeşitli logging sağlayıcılarını destekleyerek kapsamlı bir loglama çözümü sunar.
Bu makalede, PDF belgeleriyle çalışma konusunda güçlü bir .NET kütüphanesi olan IronPDF kullanarak Prism Logging'i konsol uygulamalarına nasıl entegre edeceğimizi inceliyoruz. Bu araçları birleştirerek, geliştiriciler konsol uygulamalarında gelişmiş loglama işlevselliği uygulayabilir, bu da bakım ve sorun giderme yeteneklerini artırır.
Prism Loglamaya Giriş
Prism.Plugin.Logging, XAML uygulamaları oluşturmak için popüler bir framework olan Prism'ı, kapsamlı loglama yetenekleri sağlayarak genişletir. NLog, Serilog ve Microsoft.Extensions.Logging gibi çoklu logging sağlayıcıları için destek ile, Prism.Plugin.Logging, çeşitli uygulama ihtiyaçlarına uyacak esneklik ve özelleştirme seçenekleri sunar.
Prism loglamasını kullanmanın avantajları
Esnek Logging Yapılandırması: Prism.Plugin.Logging, popüler seçenekler olan NLog, Serilog ve Microsoft.Extensions.Logging dahil olmak üzere, çeşitli logging sağlayıcılarını sorunsuz bir şekilde yapılandırmaya olanak tanır.
Yapılandırılmış Loglama Desteği: Geliştiriciler, Prism.Plugin.Logging kullanarak mesajlarıyla birlikte yapılandırılmış veri loglayabilir. Bu işlev, özellikle IronPDF tarafından üretilen log raporlarına zaman damgaları, hata kodları veya kullanıcı aktiviteleri gibi kapsamlı bağlam verilerinin kaydedilmesi gereken konsol uygulamalarını içeren senaryolarda faydalı olur.
Prism loglamasının nasıl kullanılacağı
- Yeni bir C# projesi oluşturun
- Prism loglama paketini yükleyin.
- SyslogLogger için bir nesne oluşturun ve yapılandırmayı parametre olarak geçin.
- Gerektiğinde log metodunu çağırın ve log mesajı ile log seviyesini iletin.
- Log nesnesini sonunda kapatın.
Prism Loglarına Başlarken
C# Projelerinde Prism Kurulumu
Bir C# projesine Prism'i entegre etmek kolaydır. Prism'i eklemek için Microsoft'un .NET paket yöneticisi olan NuGet'i kullanmak gereklidir. Prism Logs'u projelerinize entegre etmek için gereken araçlar ve kütüphaneler bu kütüphane tarafından sağlanır.

.NET Uygulamalarında Prism'in Uygulanması
Prism, Windows Forms (WinForms) ve Windows Console dahil olmak üzere birçok .NET uygulama türüyle uyumludur. Her framework farklı uygulanmasına rağmen, temel konsept her zaman aynı olup, uygulamanızla ilgili verileri loglamaya yardımcı olur.
Visual Studio'da Yeni Proje Oluşturma
Visual Studio uygulamasında Dosya menüsünü seçin. "Yeni Proje" üzerine tıklayın, ardından "Konsol uygulaması"nı seçin.

Yalnız dosya konumunu seçtikten sonra proje adı belirtilen metin alanına girin. Ardından, aşağıdaki örnekte gösterildiği gibi, gerekli .NET Framework'ü seçmek için Create butonuna tıklayın.

Seçilen uygulama, Visual Studio projesinin nasıl organize edildiğini belirleyecektir. Kod eklemeye ve uygulamayı oluşturmaya başlamak için program.cs dosyasını açmanız yeterlidir. Windows, konsol veya web uygulamalarını kullanabilirsiniz.
Bundan sonra, kütüphane eklenebilir ve kod test edilebilir.
Prism Loglarını Kullanmanın Basit Bir Örneği
Aşağıdaki kod örneğinde, Prism log nesnesi başlatılır ve ardından Prism loglarına birer birer farklı logging seviyeleri eklenir, tüm logları ve kritikliği bir listeye kaydedilir.
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
Prism Logging'den log raporları üretilir. Prism loglarını izlemek için Kiwi Syslog Service Manager adında bir araç kullanıyoruz.
Prism Log dosyası çıktısı

Prism Log İşlemleri
Genişletilebilir Logging
Prism.Plugin.Logging'in yetenekleri, daha fazla işlevsellik ve esneklik sağlayan logging ile genişletilir. Log seviyelerini, log hedeflerini ve uygulamanızın logging ihtiyaçlarını karşılayacak diğer değişkenleri ayarlamak için birçok yapılandırma seçeneği sunar.
Birden Fazla Log Hedefi
Log mesajlarını konsol, dosyalar, veri tabanları ve diğer logging hizmetleri dahil olmak üzere çeşitli yerlere yönlendirebilirsiniz. Bu esneklik nedeniyle, uygulamanızın gereksinimlerine ve ortamına uygun en iyi logging hedeflerini seçebilirsiniz.
Özel Loggerlar
Eklenti ile Prism'in ILoggerFacade arayüzünü uygulayarak özel günlükleyiciler oluşturabilirsiniz. Bu, uygulamanızın ihtiyaçlarına göre özel bir günlükleme yeteneği oluşturmanızı veya üçüncü taraf günlükleme framework'leriyle bağlanmanızı sağlar.
Prism Logs ile Günlük Oluşturma
Prism günlükleri birkaç satır kod ile kolayca oluşturulabilir. Aşağıda, bir günlük oluşturmanın örneği bulunmaktadır.
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)
Prism Logging ve IronPDF Entegrasyonu
Prism ve IronPDF'yi Birlikte Kullanma
Prism ve IronPDF'yi bir C# projesinde birleştirmek bazı heyecan verici olanaklar açar. Prism, günlüklerle çalışmak için harika bir araç olmasına rağmen, IronPDF bu içeriği PDF'lere dönüştürmek için mükemmel bir araçtır. Programcılar, bu bağlantı sayesinde, öğeyi özel tasarımlı bir PDF belgesine kaydeden uygulamalar oluşturabilirler.
IronPDF ile Prism Günlükleme
Kullanıcılar, Prism Günlüklerini kullanan bir Windows konsol uygulaması oluşturarak program içindeki Günlüklerle etkileşimde bulunabilirler. Bu kontrol, konsolda uygun alan kalacak şekilde yerleştirilmelidir ve günlükler yapmak için bolca yer bırakmalıdır. Sunucu günlük işlemleri ve HTTP günlükleri ekleyin.
IronPDF'yi Yükleyin
- Visual Studio projesini açın.
-
"Araçlar" > "NuGet Paket Yöneticisi" > "Paket Yöneticisi Konsolu"nu seçin.
- Paket Yöneticisi Konsolu'nda aşağıdaki komutu yazıp Enter'a basın:
Install-Package IronPdf
- IronPDF'i kurmanın bir başka yolu, NuGet Paket Yöneticisi'ni Çözümler için kullanmaktır.
- Arama sonuçlarında IronPDF paketini arayın, seçin ve "Install" butonuna tıklayın. Visual Studio indirme ve yüklemeyi otomatik olarak halledecektir.

- NuGet, IronPDF paketini ve projeniz için gerekli olan tüm bağımlılıkları indirip kuracaktır.
- IronPDF kurulduktan sonra, bunu projeniz için kullanabilirsiniz.
NuGet Web Sitesi Üzerinden Kurulum
IronPDF'in özellikleri, uyumluluğu ve diğer indirme seçeneklerini öğrenmek için https://www.nuget.org/packages/IronPdf adresindeki NuGet web sitesindeki IronPDF sayfasını ziyaret edin.
DLL Kullanarak Kurulum
Alternatif olarak, IronPDF'i DLL dosyasıyla doğrudan projeye dahil edebilirsiniz. DLL dosyasını içeren ZIP dosyasını indirmek için bu link'e tıklayın. Dosya açıldıktan sonra, DLL'i projenize dahil edin.
Mantığı Uygulamak
- Renderer ve Logger'ı ayarlama: Yazılım, IronPDF renderer'ını ve Prism logger'ını ayarlar.
- Günlük Mesajları: Belirlenen kategori ve öncelik ile mesajlar, MessageLog() yöntemi kullanılarak kaydedilebilir. Bu örnekte, uygulamanın başlama ve durma mesajlarının yanı sıra uygulama çalışırken ortaya çıkan hataları kaydediyoruz.
- Mantığı Uygulama: Uygulama mantığının bir bölümü, PerformApplicationLogic() yöntemi ile simüle edilir. Hata günlüğünü örneklemek için, bu sadece bir mesaj üretir ve bu durumda bir istisna yükseltir.
- Bir PDF Günlük Raporu Oluşturma: Uygulama mantığı yürütüldükten sonra, yazılım kaydedilen mesajlara dayalı olarak bir HTML belgesi oluşturur. Ardından bu HTML belgesini bir günlük dosyası olarak PDF raporu haline dönüştürmek için IronPDF'in RenderHtmlAsPdf() özelliğini kullanır. PDF dosyası daha sonra diske kaydedilir.
Daha önce tanımlanan kodu, IronPDF kodunu entegre etmek için genişletmek:
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
Aşağıda IronPDF'ten üretilen görüntü günlük raporu bulunmaktadır

IronPDF kod referansları hakkında daha fazla bilgi edinmek için buraya başvurun.
Sonuç
Prism.Plugin.Logging'in IronPDF ile entegrasyonu, geliştiricilerin terminal uygulamalarına geniş kapsamlı bir günlükleme yeteneğini kolayca dahil etmelerini sağlar. Geliştiriciler, her iki aracın özelliklerini kullanarak genel program bakımını iyileştirebilir, hata ayıklama yeteneklerini optimize edebilir ve günlüğe kaydetme işlemlerini hızlandırabilirler. Prism.Plugin.Logging, doğru uygulama ve kurulum ile konsol uygulamalarının tam günlükleme kapsamı sağlamasını, güçlü izleme ve arıza giderme yetenekleri garanti eder.
IronPDF, kalıcı lisans içeren ve kütüphane yükseltmesini içeren Lite bundle bir yıllık yazılım bakımını içeren süresiz bir lisans sunar. IronPDF, zaman ve yeniden dağıtım üzerindeki kısıtlamalara tabi olarak, geliştirme amaçları için ücretsiz bir lisans sunar. ücretsiz deneme edinmek için. Çeşitli Iron Software ürünleri hakkında daha fazla bilgi edinmek için, lütfen web sitesi linkini ziyaret edin.
Sıkça Sorulan Sorular
.NET konsol uygulamasına kayıt nasıl entegre edebilirim?
Prism.Plugin.Logging kullanarak .NET konsol uygulamasına kayıt entegre edebilirsiniz, bu çeşitli kayıt sağlayıcılarını destekler ve yapılandırılmış bir kayıt cercevesi sunar. Kurulum için, Prism kayıt paketini yükleyin, gerekli kayıt nesnelerini oluşturun ve kayıt hedeflerinizi ve seviyelerinizi yapılandırın.
Prism Logging ile IronPDF'yi birlestirmenin avantajları nelerdir?
Prism Logging ile IronPDF'yi birleştirmek, PDF log raporları uretmenizi, uygulama bakimini ve sorun giderme işlemlerini geliştirmenizi saglar. IronPDF, HTML log iceriğini PDF belgelerine dönüştürerek loglar üzerinde gözden geçirme ve paylaşım için taşınabilir bir format sunar.
Log verilerini .NET'de PDF belgesine nasıl dönüştürebilirim?
Log verilerini .NET'de PDF belgesine dönüştürmek için, log verilerinizi HTML olarak işlemek ve ardından RenderHtmlAsPdf gibi metodları kullanarak PDF'ye dönüştürmek için IronPDF'yi kullanabilirsiniz. Bu, ayrıntılı ve taşınabilir log raporları oluşturmanıza olanak tanır.
Prism.Plugin.Logging ile uyumlu olan kayıt sağlayıcıları nelerdir?
Prism.Plugin.Logging, NLog, Serilog, ve Microsoft.Extensions.Logging dahil olmak üzere bircok kayıt sağlayıcısıyla uyumludur. Bu esneklik, geliştiricilerin projelerinin ihtiyaçlarına en uygun kayıt sağlayıcısını seçmesine olanak tanır.
Visual Studio'da bir Prism kayıt projesi nasıl kurulum yapabilirim?
Visual Studio'da bir Prism kayıt projesi kurmak için yeni bir C# projesi oluşturun, NuGet Package Manager kullanarak Prism kayıt paketini yükleyin ve SyslogLogger nesnesi oluşturarak ve log seviyelerini ve hedeflerini yapılandırarak kayıt cercevesini başlatin.
Prism.Plugin.Logging özellestirilmis kayıt konfigürasyonları için kullanılabilir mi?
Evet, Prism.Plugin.Logging, özellestirilmis kayıt konfigürasyonlarını destekler. Log seviyelerini ayarlayabilir, özellestirilmis logger tanımlayabilir ve log mesajlarını çeşitli noktalara yonlendirerek, belirli uygulama gereksinimlerine uygun bir kayıt düzeni oluşturabilirsiniz.




