问题描述
我有一个 .Net Web 应用程序,我使用 Serilog 和文件接收器成功地将其登录到文件。主应用程序是在 global.asax 应用程序启动中设置记录器。
Web 应用程序评估 Web 服务(也是由我编写的),我想从 Web 服务 (asmx) 中登录,但我无法让它写入任何内容。我尝试了多种方法,包括在调用 Log 函数之前直接设置 LoggerConfiguration 但没有运气。我也启用了 SelfLog,没有任何输出。
任何帮助将不胜感激 - 我整天都在谷歌上搜索。
解决方法
为了让 Serilog 在 ASMX 网络服务中工作,我必须在服务顶部声明一个私有静态记录器:
private static Serilog.Core.Logger myLog = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.File(HttpContext.Current.Server.MapPath("~/logs/QuoteEngine.txt"),rollingInterval: RollingInterval.Day).CreateLogger();
然后我打电话:
myLog.Error("Your string") or myLog.Debug("Your string") etc
我希望这可以帮助遇到相同问题的人找到答案。