뭘로할까?
- 일단 많이 보이는게 NLog, Serilog 라서 이 둘 중 하나 고르기로 함.
Serilog
- 이걸 먼저 쓰고 있어서 내 목적에 맞게 쓸 수 있나 알아보기로 함.
- 쓰는건 간단했음.
1 2 3 4
Log.Logger = new LoggerConfiguration() .WriteTo.File(@"myapp\log_3.txt") .CreateLogger(); Log.Logger.Information("log3");
근데 Log.Logger이 static면 다르게 쓸 수 없을것같음.
LoggerConfiguration을 mapping시켜 불러다 쓰는 것도 모르겠음
한번 설정 하고 전역으로 저 config대로 쓸것같음. - 그러다 찾은게 아래[^1] 인데 보면
1 2 3 4 5 6 7
using (var performanceCounters = new LoggerConfiguration() .WriteTo.File(@"myapp\log.txt") .CreateLogger()) { performanceCounters.Information("Performance is really good today ;-)"); // Your app runs, then disposal of `performanceCounters` flushes any buffers }
이거 좀 더 살붙이면 될것같았는데
근데 쓸때 마다 새로 만드는것도 그렇고
무튼 좀 찜찜한데 더 알아보고 이방법이 상관없으면 쓰기로 하자. - 둘다 비교하다 보니까 Log.Logger은 static인데 performanceCounters쓰는 아래 방식은 변수처리 되어있어 보니까
Log.Logger 는 Serilog.Log이고 var performanceCounters는 형식이 Serilog.Core.Logger임 그래서1 2 3 4 5 6 7 8 9
Serilog.Core.Logger logger_1 = new LoggerConfiguration() .WriteTo.File(@"myapp\log_4.txt") .CreateLogger(); logger_1.Information("log4_1"); Serilog.Core.Logger logger_2 = new LoggerConfiguration() .WriteTo.File(@"myapp\log_5.txt") .CreateLogger(); logger_2.Information("log5_2");
이렇게 하면 완성.
인줄 알았는데 logger_1과 logger_2는 같은 파일에 접근을 못하는것같음 같은 파일에 쓰면 뒤꺼가 씹힘
logger_1 target file에 같이 쓰는게 아니라 logger_2가 아무 동작도 안하는듯해보임.
file open상태로 잡고있나봄.. - 또 하나 더 찾은것. map를 사용하는 방법.
1 2 3 4 5
Log.Logger = new LoggerConfiguration() .WriteTo.Map("Name", "Other", (name, wt) => wt.File($"./Logs/{name}_.txt", rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}]\t {Message}{NewLine}")) .MinimumLevel.Verbose() .CreateLogger(); Log.Information("Hello, {Name}!", "Bob");
역시나 간단하다. Serilog는 전체적으로 간단해보여서 어지간하면 이걸로 쓰고싶었다.
무튼 이것도 안된다.
각각 파일별로 나누는건 가능한데 실제 로그를 찍을 때 내용에 꼭 {name} 이부분이 들어가야 {name}.log파일이 생성되고 그 안에 내용이 써진다.
문제는 내용에도 {name}가 들어가게 된다.
따라서 로그 내용이 yyyy-mm-dd HH:mm:ss.fff {name} “contents” 이런식임 {name}를 뺄 수 없었음. 빼면 default인 Other(위의경우)로 써짐.결론
- Serilog 사용 불가.
- stackoverflow 에 물어봤는데 “just use separate ILogger” 딱 이것만 친절히 답변달림. ㅆㅂ
- 그래서 이곳저곳 찾던 중 발견한게 NLog.
Comments powered by Disqus.