Log4net vs NLog vs Serilog 성능 차이
오늘은 C#에서 어떤 로그라이브러리를 사용하는게 가장 성능이 우수할지 정리해보려고합니다.
Log4net
- Log4net은 이미 유명한 Log4J를 포팅한 로그라이브러리
- 다양한 기능을 제공
- 동기식 로깅 -> 비동기 처리도 가능하다.
단점
이것저것 세팅할게 많고 사용법을 익혀야한다.
NLog
- 비동기식 로깅 지원
- Loss율이 낮다
- 구조적 로깅 지원(NLog 4.5 이상)
치명적인 단점으로 Logger자체에 문제가 생기면 Fatal 에러가 난다고 한다.
사실인지는 직접 해봐야 알것같다.
Benchmarking 5 Popular .NET Logging Libraries
We tested the top five .NET logging frameworks on the market against each other: Log4net, ELMAH, NLog, Microsoft Enterprise Library, and NSpring.
www.loggly.com
Serilog
- 동기식 로깅 지원
- 구조적 로깅에 최적화!!
- 쉬운 세팅과 사용법
C# - serilog - jacking75
.NET의 많은 다른 라이브러리와 마찬가지로 Serilog는 파일, 콘솔 등의 다양한 저장소로의 로깅을 제공한다. 또한 설정하기 쉬운 깨끗한 API를 가지고 있으며, 다양한.NET 플랫폼으로 이식성을 가지
jacking75.github.io
속도비교
로그 100000개를 작성하여 비교했으며
Stopwatch클래스를 사용해 ms단위로 측정하였다.
1. Serilog(1446ms)
2. NLog : 원래는 Serilog와 속도가 비슷하거나 조금 느릴것으로 예상했으나 사용방법이 익숙치않아서그런지 20630ms가 나왔다.;;;
3. Log4net(1705ms)
결과
실제로 사용해보니 Serilog의 속도가 빠르고, 라이브러리 사용도 Logger를 만들면 바로 사용가능해 쉬운 편이라 Serilog를 사용하기로 했다.
혹시 NLog속도 측정이나 버그에 관한 문제를 아시는 분은 댓글 달아주시면 감사하겠습니다.
참고 사이트
Serilog vs NLog Benchmarks
As discussed in the previous article about structured logging, I planned to look into Serilog in detail, and I decided to tackle this from a performance point of view. This article was finished a while ago but I never found time to review it and actually r
www.darylcumbo.net
.NET 로그 라이브러리 비교
.NET 로그 라이브러리 검토 현재 주문/예매 접근 트래픽 발생 로그의 경우 EOS 대상 및 대량 트래픽 발생 성능 이슈로 향후 프로세스 변경 개선 필요 대량 트래픽 고려한 신규 접근 로그 라이브러
devopsflux.github.io
NLog vs. log4net vs. Serilog - DZone Integration
This article takes a look at three popular logging frameworks — NLog, log4net, and Serilog — and compares each of them and explores which one is the best.
dzone.com