C# 如何让MetroLog开始登录Windows 8.1应用商店应用程序?

C# 如何让MetroLog开始登录Windows 8.1应用商店应用程序?,c#,windows-8.1,metrolog,C#,Windows 8.1,Metrolog,我正在尝试使用MetroLog为Windows应用商店应用程序编写日志文件。我遵循了非常稀疏的文档(基本上是从Windows8示例中复制的代码),但是我没有得到任何我能告诉的日志 我从一个基本的Windows 8.1应用商店应用程序开始(使用“拆分应用程序”模板),在我的app类的构造函数中,我完成了以下操作: LogManagerFactory.DefaultConfiguration.AddTarget( LogLevel.Trace, LogLevel.Fatal,

我正在尝试使用MetroLog为Windows应用商店应用程序编写日志文件。我遵循了非常稀疏的文档(基本上是从Windows8示例中复制的代码),但是我没有得到任何我能告诉的日志

我从一个基本的Windows 8.1应用商店应用程序开始(使用“拆分应用程序”模板),在我的
app
类的构造函数中,我完成了以下操作:

LogManagerFactory.DefaultConfiguration.AddTarget(
    LogLevel.Trace, 
    LogLevel.Fatal, 
    new FileStreamingTarget());

var logger = LogManagerFactory.DefaultLogManager.GetLogger<App>();

logger.Trace("Sample MetroLog Trace Message");
logger.Debug("Sample MetroLog Debug Message");
logger.Info("Sample MetroLog Info Message");
logger.Warn("Sample MetroLog Warn Message");
logger.Error("Sample MetroLog Error Message");
logger.Fatal("Sample MetroLog Fatal Message");
LogManagerFactory.DefaultConfiguration.AddTarget(
LogLevel.Trace,
日志级别。致命,
新的FileStreamingTarget());
var logger=LogManagerFactory.DefaultLogManager.GetLogger();
logger.Trace(“样本计量跟踪消息”);
logger.Debug(“样本计量调试消息”);
logger.Info(“样本计量信息消息”);
logger.Warn(“样本计量警告消息”);
记录器错误(“样本计量错误消息”);
logger.Fatal(“样本计量致命信息”);
据我所知,我应该在本地存储器中的一个名为MetroLogs的文件夹中获取日志消息,但我没有看到任何数据被写入任何地方。记录器声称所有这些日志级别都已启用,但未将任何内容写入磁盘。Visual Studio中的“输出”窗口会显示以下内容:

1 | 2014-08-20T19:43:46.1197131+00:00 |跟踪| 3 |创建了记录器“应用程序”

但这是我从计量学中看到的唯一活动

我使用NuGet安装了MetroLog,但我怀疑这可能是问题的一部分。NuGet添加了以下引用:

<Reference Include="MetroLog">
  <HintPath>..\packages\MetroLog.0.8.6\lib\netcore45\MetroLog.dll</HintPath>
</Reference>
<Reference Include="MetroLog.Platform">
  <HintPath>..\packages\MetroLog.0.8.6\lib\netcore45\MetroLog.Platform.dll</HintPath>
</Reference>
<Reference Include="MetroLog.WinRT">
  <HintPath>..\packages\MetroLog.0.8.6\lib\netcore45\MetroLog.WinRT.winmd</HintPath>
</Reference>

..\packages\MetroLog.0.8.6\lib\netcore45\MetroLog.dll
..\packages\MetroLog.0.8.6\lib\netcore45\MetroLog.Platform.dll
..\packages\MetroLog.0.8.6\lib\netcore45\MetroLog.WinRT.winmd

这看起来是正确的。我确实注意到,如果我试图在调试时检查
LogManagerFactory
,VisualStudio会抱怨,因为它似乎是在两个不同的程序集中定义的。我不应该在同一个项目中同时使用这两种引用吗?

对于遇到此问题的任何其他人:

默认情况下,
LogConfiguration
对象(包括默认对象)似乎处于关闭状态。所有的计量样本似乎都没有反映这一点,但为了进行任何记录,我已经手动启用了它

我将代码更改为:

var configuration = new LoggingConfiguration();
#if DEBUG
configuration.AddTarget(LogLevel.Trace, LogLevel.Fatal, new DebugTarget());
#endif
configuration.AddTarget(LogLevel.Trace, LogLevel.Fatal, new StreamingFileTarget());
configuration.IsEnabled = true;

LogManagerFactory.DefaultConfiguration = configuration;

现在它开始工作了。

对我也起了作用。你应该接受你的答案!