似乎有很多人对此提出疑问,然而那边的人已经决定在问题得到解决之前结束我的问题;我认为我是一个懒惰的开发者并且无法阅读文档 - 不是这样的:https://github.com/IdentityServer/IdentityServer3/issues/3083
我已按照此处的说明操作:https://identityserver.github.io/Documentation/docsv2/configuration/logging.html
但是我无法记录日志。 我现在的问题是,假设我没有做错事,我是否从单位测试方法中解决了问题?
我有一个单独的单元测试项目,它只是请求令牌并写出响应,但我在某处得到了500错误,并且我假设日志会告诉我原因。
在我前一段时间有一些回购问题并且失去了一些工作之前,测试工作正常,我想我回到了原来的位置,但我确定根本原因将是简单的我和我被忽视了 - 通常是。
无论如何,我真的希望有人可以提供帮助,而不仅仅是嗤之以鼻。 非常感谢!
答案 0 :(得分:1)
首先将记录器添加到IdentityServer配置(如果是Owin,在启动 public void Configuration(IAppBuilder app)方法下;
Serilog.Log.Logger = new LoggerConfiguration()
.WriteTo.Trace(outputTemplate: "{Timestamp} [{Level}] ({Name}){NewLine} {Message}{NewLine}{Exception}")
.CreateLogger();
然后在 配置 下添加以下webconfig;
<system.diagnostics>
<sources>
<source name="Thinktecture.IdentityServer" switchValue="Information, ActivityTracing">
<listeners>
<add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.svclog" />
</listeners>
</source>
</sources>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="sybsListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="Trace.log" />
<remove name="Default" />
</listeners>
</trace>
运行并尝试与IndentityServer交互后,您可以检查项目下的Trace.log文件。不要忘记选择“显示所有文件”
基于Trace.log,如果无法解决,可以再次指定问题吗?
答案 1 :(得分:0)
我通过将单元测试包装在
中来管理日志工作 using (var logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.File(@"C:\Users\Richard Terris\Desktop\idsLogs.txt")
.CreateLogger())
{
它可能不是最好的解决方案,但它确实有效!
感谢您的回复!