패키지 - Serilog.Sinks.Udp | 플랫폼 - .NET Framework 4.6.1, .NET Standard 1.3/2.0/2.1
Log4jTextFormatter
Log4netTextFormatter
다음 예에서 싱크는 네트워크의 UDP 패키지를 포트 7071의 localhost로 보냅니다.
Serilog . ILogger log = new LoggerConfiguration ( )
. MinimumLevel . Verbose ( )
. WriteTo . Udp ( "localhost" , 7071 , AddressFamily . InterNetwork )
. CreateLogger ( ) ;
Serilog.Settings.Configuration과 함께 사용하면 appsettings.json
에서 싱크를 구성할 수 있습니다.
{
"Serilog" : {
"MinimumLevel" : " Verbose " ,
"WriteTo" : [
{
"Name" : " Udp " ,
"Args" : {
"remoteAddress" : " localhost " ,
"remotePort" : 7071 ,
"family" : " InterNetwork "
}
}
]
}
}
Serilog.Settings.AppSettings와 함께 사용하면 XML <appSettings>
에서 싱크를 구성할 수 있습니다.
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< configuration >
< appSettings >
< add key = " serilog:minimum-level " value = " Verbose " />
< add key = " serilog:using:Udp " value = " Serilog.Sinks.Udp " />
< add key = " serilog:write-to:Udp " />
< add key = " serilog:write-to:Udp.remoteAddress " value = " localhost " />
< add key = " serilog:write-to:Udp.remotePort " value = " 7071 " />
< add key = " serilog:write-to:Udp.family " value = " InterNetwork " />
</ appSettings >
</ configuration >
로그 이벤트를 생성하는 것은 이야기의 절반에 불과합니다. 개발이나 생산에 도움이 되는 문제로 소비하지 않는 한, 애초에 실제로 생산할 필요는 없습니다.
개발 중에는 UDP 패키지를 루프백 주소로 보내고 Log2Console을 사용하여 시각화했습니다. UDP 수신기를 지원하며 필요에 따라 필터링하고 검색할 수 있습니다.
다음 단계로 나아가는 것은 팀으로서 로그 이벤트를 멀티캐스트 주소로 전송하여 모든 팀 구성원이 액세스할 수 있도록 하는 데 동의하는 것입니다. 이는 실행 중인 애플리케이션의 모든 인스턴스에서 로그 이벤트를 모니터링하려는 품질 보증에 도움이 될 수 있습니다.
이벤트 포맷터는 스테로이드의 출력 템플릿입니다. 단일 로그 이벤트를 텍스트 표현으로 바꾸는 역할을 담당합니다. 로그 이벤트를 JSON, XML 또는 수신자의 기대와 일치하는 기타 항목으로 직렬화할 수 있습니다.
싱크에는 두 개의 XML 기반 이벤트 포맷터가 사전 로드되어 있습니다. 하나는 Log2Console에서 예상하는 log4j 스키마와 일치하고 다른 하나는 Log4View에서 예상하는 log4net 스키마와 일치합니다.
Log4jTextFormatter
로그 이벤트는 Log2Console에서 예상하는 log4j XML 스키마에 따라 형식이 지정됩니다.
< log4j : event logger = " Some.Serilog.Context " timestamp = " 1184286222308 " level = " ERROR " thread = " 1 " >
< log4j : message >Something failed</ log4j : message >
< log4j : throwable >An exception describing the failure< log4j : throwable >
</ log4j : event >
Log4netTextFormatter
로그 이벤트는 Log4View에서 예상하는 log4net XML 스키마에 따라 형식이 지정됩니다.
< log4net : event logger = " Some.Serilog.Context " timestamp = " 2017-09-01T22:00:00.000+02:00 " level = " DEBUG " thread = " 1 " username = " MACHINEusername " domain = " dotnet " >
< log4net : locationInfo class = " Some.Serilog.Context " method = " System.String Get(Int32) " />
< log4net : properties >
< log4net : data name = " log4net:HostName " value = " MACHINE " />
</ log4net : properties >
< log4net : message >Something went wrong.</ log4net : message >
< log4net : throwable >System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.</ log4net : throwable >
</ log4net : event >
다음 샘플 애플리케이션은 다양한 컨텍스트에서 이 싱크의 사용법을 보여줍니다.
프로젝트에 UDP 싱크를 포함하려면 NuGet에서 직접 설치할 수 있습니다.
싱크를 설치하려면 패키지 관리자 콘솔에서 다음 명령을 실행하세요.
PM> Install-Package Serilog.Sinks.Udp
이 프로젝트가 귀하의 생산성을 유지하고 비용을 절약하는 데 도움이 되었다면, 저에게 커피 한 잔 사주세요 :)
귀하의 제품에 대한 무료 라이선스로 오픈 소스 커뮤니티를 지원하는 중요한 이니셔티브에 대해 JetBrains에게 감사드립니다.