我正在为包含某些服务的 ServiceStack 创建一个插件。但是,我希望这些服务记录到 AppHost 中的其他服务的另一个数据库(在我的情况下)。
是否可以在 AppHost 中注册 2 个 ILog 接口?
将ServiceStack.Logging.LogManager.GetLogger(GetType())
始终返回一个 ILog 接口。我是否需要为另一个 Logger 创建第二个 ILog 实现?
我正在使用 NLog。
我正在为包含某些服务的 ServiceStack 创建一个插件。但是,我希望这些服务记录到 AppHost 中的其他服务的另一个数据库(在我的情况下)。
是否可以在 AppHost 中注册 2 个 ILog 接口?
将ServiceStack.Logging.LogManager.GetLogger(GetType())
始终返回一个 ILog 接口。我是否需要为另一个 Logger 创建第二个 ILog 实现?
我正在使用 NLog。
我不熟悉 ServiceStack,所以我的建议可能没有意义(但在单独考虑 NLog 时确实有意义)。
您不能在 NLog.config 文件中配置另一个目标并配置您的记录器以写入该目标吗?
例如...
在 NLog.config 中配置一些目标(我正在配置一个控制台目标和一个文件目标)
<targets>
<target name="file" xsi:type="File" layout="${longdate} | ${level} | ${logger} | ${message}" fileName="${basedir}/${shortdate}.log" />
<target name="console" xsi:type="ColoredConsole" layout="${longdate} | ${level} | ${logger} | ${message}" />
</targets>
配置一些规则
<rules>
<logger name="Your.Name.Space1.*" minlevel="Trace" writeTo="file" />
<logger name="Your.Name.Space2.*" minlevel="Trace" writeTo="file" />
<logger name="*" minLevel="Trace" writeTo="console" />
</rules>
现在,来自 Your.Name.Space1 和 Your.Name.Space2 的所有类都将登录到“文件”目标,而所有其他类都将登录到“控制台”目标。"final=true"
如果您希望他们的日志仅出现在“文件”目标中,您可以添加到您的类的记录器中。
我认为你应该做你想做的事。