
Serilog.Sinks.RichTextBox.Wpf
안녕하세요! 개발자 이재웅입니다.
여러분은 로그를 어떻게 사용하고 계신가요?
아마 일반적으로 직접 구현을 하거나 신뢰 있는 로그 라이브러리를 사용하고 계실 것입니다. 그리고 많은 분들이 사용하는 Serilog는 비주얼 적으로 좀 더 재미있게 활용할 수 있는 확장 라이브러리도 제공하고 있습니다.
WPF에서 RichTextBox를 사용한 모습…

(마치 콘솔 같죠?)
사용 방법
사용 방법은 아주 심플합니다. 먼저 Serilog.Sinks.RichTextBox.Wpf 라이브러리를 설치해야 합니다.
Install-Package Serilog.Sinks.RichTextBox.Wpf -Prerelease
(또는 Nuget을 통해 설치)
1. RichTextBox 컨트롤 생성
아래와 같이 평범한 RichTextBox를 준비합니다.
<RichTextBox x:Name="MyRichTextBox"
Background="Black"
Foreground="LightGray"
FontFamily="Cascadia Mono, Consolas, Courier New, monospace"
VerticalScrollBarVisibility="Auto"/>
2. RichTextBox 컨트롤 연결
Serilog에서 대상 RichTextBox으로 로그를 전달해줄 수 있도록 아래와 같이 연결합니다.
Log.Logger = new LoggerConfiguration()
.WriteTo.RichTextBox(MyRichTextBox)
.CreateLogger();
3. Serilog 사용
RichTextBox를 등록하고 나서 자유롭게 로그를 사용하면 됩니다.
public partial class JamesWindow : Window
{
public JamesWindow()
{
InitializeComponent();
Log.Logger = new LoggerConfiguration()
.WriteTo.RichTextBox(MyRichTextBox)
.CreateLogger();
Log.Information("InitializeComponent {0}", this.GetHashCode());
Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Log.Information("MainWindow_Loaded {0}", this);
}
}
끝으로…
그리고 이 확장 라이브러리 역시 GitHub 오픈소스를 통해 제공되고 있습니다.
내부적인 RichTextBox 처리가 궁굼하신 분은 아래 레포지터리를 참고해보시길 바랍니다!!
제가 준비한 내용은 여기까지 입니다.
읽어주셔서 감사합니다. ![]()