2013-10-22 139 views
-1

我需要最简单的记录器wp7,没有网络报告或文件存储。只需简单地向控制台报告。它应该能够使用字符串,对象和格式化字符串:最简单的WP7记录器

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

那里的“问题”部分比?你的“答案”并不真正达到SO标准 - 随机的代码块没有解释(忽略了你使用本地时间而不是UTC的原因,并且无论什么原因使用'#if'而不是条件属性)。 –

+0

问题是“最简单的WP7记录器”。答案不是一个随机代码,它对我来说相当不错。另外,请看一下这个问题的最后一句。如果你错过了,这是“改进的考虑是值得欢迎的”。 –

+0

我已将评论添加到帖子中,随时对其进行改进。如果你想展示你的代码,我真的建议首先使用http://codereview.stackexchange.com进行评论。并且请让“问题”看起来像一个问题(不要忘记现在删除所有文本,因为它没有描述您提供解决方案的问题)。 –

回答

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; 
    } 
} 
+0

-1:代码不能编译('NotNullAttribute'不存在)。我强烈建议正确使用条件属性而不是'#if'。 –

+0

这里使用属性有什么好处?兼容性?更新。 –