【问题标题】:Simplest WP7 logger [closed]最简单的 WP7 记录器 [关闭]
【发布时间】:2013-10-22 07:37:20
【问题描述】:

我需要最简单的 wp7 记录器,不需要网络报告或文件存储。只是简单的向控制台报告。它应该能够处理字符串、对象和格式化字符串:

  • SimpleLogger.WriteLine("JustLine");
  • SimpleLogger.WriteLine(ObjectToBeCastedToString);
  • SimpleLogger.WriteLine("Price is {0} {1}", price, currency);

【问题讨论】:

  • “问题”部分比哪里?而且您的“答案”并没有真正符合 SO 标准-没有解释的随机代码块(忽略您使用本地时间而不是 UTC 并且无论出于何种原因使用 #if 而不是条件属性的事实)。
  • 问题是“最简单的 WP7 记录器”。答案不是随机代码,它对我很有用。另外,请看一下问题的最后一句话。万一您错过了它,“欢迎改进考虑”。
  • 我已将我的评论添加到帖子中,请随时改进。如果你想展示你的代码,我真的建议先使用codereview.stackexchange.com 进行审查。并且请让“问题”看起来像一个问题(不要忘记删除您现在拥有的所有文本,因为它没有描述您提供的解决方案的问题)。

标签: c# windows-phone-7 logging


【解决方案1】:
public class SimpleLogger
{
    private static DateTime lastLog;

    [Conditional("DEBUG")]
    public static void WriteLine(object value)
    {
        WriteLine((value == null) ? "(null)" : value.ToString());
    }

    [Conditional("DEBUG")]
    public static void WriteLine(string format)
    {
        WriteLine("{0}", format);
    }

    [Conditional("DEBUG")]
    public static void WriteLine(string format, params object[] values)
    {
        var formatted = String.Format(null, format, values);

        Debug.WriteLine("{0:hh:mm:ss.fff} [{1:hh:mm:ss.fff}] {2}", DateTime.UtcNow, DateTime.UtcNow - lastLog, formatted);
        lastLog = DateTime.UtcNow;
    }
}

【讨论】:

  • -1:代码无法编译(NotNullAttribute 不存在)。我强烈建议正确使用条件属性而不是#if
  • 这里使用属性有什么好处?兼容性?已更新。
猜你喜欢
  • 1970-01-01
  • 2017-10-15
  • 2022-01-13
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多