2017-08-17 185 views

回答

1

有关启用和禁用PostSharp日志记录的详细信息,请参阅http://doc.postsharp.net/log-enabling

总之,你有两个选择:

1)通过PostSharp API特定记录的作用和命名空间禁用日志记录,例如

LoggingServices.DefaultBackend.GetSource(LoggingRoles.Tracing, MyCompany.BusinessLayer").SetLevel(LogLevel.Debug);

2)使用日志后台终端API。

您可能需要在使用此方法之前进行一些设置,如文档中所述。

但是,NLog的LogManager.DisableLogging();由开箱即用的PostSharp识别,因此您可以使用这一功能来完全禁用日志记录,包括PostSharp日志记录。

+0

在下面的代码中,LogManager.DisableLogging()没有任何影响,我仍然得到方法入口/出口迹线。 'static void Main(string [] args) { LoggingServices.DefaultBackend = new PostSharp.Patterns.Diagnostics.Backends.Console.ConsoleLoggingBackend(); NLog.LogManager.DisableLogging(); f(); } [日志] 公共静态无效F(){ } }' –

+1

这是因为你使用的是'ConsoleLoggingBackend'而不是'NLogLoggingBackend'。要使PostSharp Logging使用NLog,请将包* PostSharp.Patterns.Diagnostics *和* PostSharp.Patterns.Diagnostics.NLog *添加到您的项目中,根据NLog文档初始化NLog,并将PostSharp设置为使用NLog LoggingServices.DefaultBackend = new PostSharp.Patterns.Diagnostics.Backends.Console.NLogLoggingBackend(); '。 –

+0

我的错误。有用。谢谢。 –