Using NLog for several projects on one solution c#

不想你离开。 提交于 2020-01-07 04:38:06

问题


I have 8 console projects in one solution(I'm planning to convert them to services in future) referencing each other. I'm planning to create a ILogger interface and Logger class to encapsulate Nlog methods as I don't want to reference nlog in every project. And pass this interface from Core project to every other as build parameter. Something like

using Core
...
ILogger logger = new Logger();

Questions are:

1) Can I use one config for every logger? I use ideas from here. Mainly caller info attributes to get the assembly name, etc. So I don't need different log files or settings to determine log's origin.

2) And should I go this way and create 8 instances of ILogger, instead of creating on static class in Core assembly and calling it's methods each time as I need it. I already reference Core in every other assembly, so no new references will be made. My concern with 8 ILoggers is concurrent write to one file/DB.


回答1:


1) Can I use one config for every logger? I use ideas from here. Mainly caller info attributes to get the assembly name, etc. So I don't need different log files or settings to determine log's origin.

Yes, the config should be there in the startup project of the solution.

2) And should I go this way and create 8 instances of ILogger, instead of creating on static class in Core assembly and calling it's methods each time as I need it. I already reference Core in every other assembly, so no new references will be made.

Instance per class is recommend. You could use LogManager.GetLogger(myClassName), otherwise it's difficult the trace where the logs are from and difficult to filter.

My concern with 8 ILoggers is concurrent write to one file/DB.

You could group the messages in a buffering target so the writes are grouped. See the docs of the Buffering Wrapper target



来源:https://stackoverflow.com/questions/45566353/using-nlog-for-several-projects-on-one-solution-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!