自升级到 Visual Studio 2017 15.3.0 后,应用程序出现奇怪的调试输出
Strange debug output in app since upgrade to Visual Studio 2017 15.3.0
自从我升级到 Visual Studio 2017 15.3.0 后,我的 xamarin android 应用程序不断打印以下调试输出:
08-15 09:13:23.275 D/Mono ( 3119): [0x9a5be930] worker unparking, timeout? no interrupted? no
08-15 09:13:23.275 D/Mono ( 3119): [0x9a5be930] worker parking
08-15 09:13:23.275 D/Mono ( 3119): [0x9a6bf930] worker unparking, timeout? no interrupted? no
08-15 09:13:23.275 D/Mono ( 3119): [0x9a6bf930] worker parking
08-15 09:13:24.275 D/Mono ( 3119): [0x9a87d930] worker unparking, timeout? no interrupted? no
08-15 09:13:24.276 D/Mono ( 3119): [0x9a87d930] worker parking
输出相当规律,每秒几次。
这是什么意思,是什么原因造成的?
编辑:现在有一个bug report regarding this
我已将此问题报告给 Microsoft。他们复制了这个问题并打开了一个错误报告。他们还为我提供了以下解决方法,对我有用:(从他们的电子邮件中复制)
...似乎 Mono 默认详细程度已更改或 [Mono] 消息已移至信息日志详细级别。以下是我为缓解此问题所做的工作:
对于 Android,我向项目添加了一个新的 .txt 文件并将其构建操作设置为 AndroidEnvironment。然后我输入以下环境变量:
MONO_LOG_LEVEL=error
在我重新构建解决方案后,我不再看到 [Mono] 消息被记录到应用程序输出 window。
尽管我个人无法在 iOS 上复制此方法,但上述解决方法在 iOS 中应该同样有效,但如果不能,请告诉我。您可以通过右键单击 iOS 项目 -> 选项 -> iOS 构建来执行此操作。然后在mtouch输入框添加如下内容:
--setenv:MONO_LOG_LEVEL=error
这些额外的 Mono 环境变量会将日志详细程度设置为错误,这应该会在输出中显示 [Mono] 日志。
如果您喜欢添加日志记录,您可以将日志级别更改为消息,但是错误应该足以用于调试目的。
如果您想了解有关日志详细级别的更多信息,以下文档可以帮助您更深入地了解这一点:http://www.mono-project.com/docs/advanced/runtime/logging-runtime-events/#trace-levels
自从我升级到 Visual Studio 2017 15.3.0 后,我的 xamarin android 应用程序不断打印以下调试输出:
08-15 09:13:23.275 D/Mono ( 3119): [0x9a5be930] worker unparking, timeout? no interrupted? no
08-15 09:13:23.275 D/Mono ( 3119): [0x9a5be930] worker parking
08-15 09:13:23.275 D/Mono ( 3119): [0x9a6bf930] worker unparking, timeout? no interrupted? no
08-15 09:13:23.275 D/Mono ( 3119): [0x9a6bf930] worker parking
08-15 09:13:24.275 D/Mono ( 3119): [0x9a87d930] worker unparking, timeout? no interrupted? no
08-15 09:13:24.276 D/Mono ( 3119): [0x9a87d930] worker parking
输出相当规律,每秒几次。
这是什么意思,是什么原因造成的?
编辑:现在有一个bug report regarding this
我已将此问题报告给 Microsoft。他们复制了这个问题并打开了一个错误报告。他们还为我提供了以下解决方法,对我有用:(从他们的电子邮件中复制)
...似乎 Mono 默认详细程度已更改或 [Mono] 消息已移至信息日志详细级别。以下是我为缓解此问题所做的工作:
对于 Android,我向项目添加了一个新的 .txt 文件并将其构建操作设置为 AndroidEnvironment。然后我输入以下环境变量:
MONO_LOG_LEVEL=error
在我重新构建解决方案后,我不再看到 [Mono] 消息被记录到应用程序输出 window。
尽管我个人无法在 iOS 上复制此方法,但上述解决方法在 iOS 中应该同样有效,但如果不能,请告诉我。您可以通过右键单击 iOS 项目 -> 选项 -> iOS 构建来执行此操作。然后在mtouch输入框添加如下内容:
--setenv:MONO_LOG_LEVEL=error
这些额外的 Mono 环境变量会将日志详细程度设置为错误,这应该会在输出中显示 [Mono] 日志。
如果您喜欢添加日志记录,您可以将日志级别更改为消息,但是错误应该足以用于调试目的。
如果您想了解有关日志详细级别的更多信息,以下文档可以帮助您更深入地了解这一点:http://www.mono-project.com/docs/advanced/runtime/logging-runtime-events/#trace-levels