在天蓝色和其他应用程序上使用类:监控困境

时间:2012-06-28 09:52:42

标签: c# logging azure console-application monitoring

首先,我是C#的初学者,我没有很多程序员的习惯。

我想在Windows Azure和控制台应用上使用相同的类 例如这一个:

public static class Conversion
{
    public static void Convert(string fileName)
    {
        // ...
        if (error)
            Console.WriteLine("It is a error in Conversion.Convert(string).");
        // ...
        Console.WriteLine("Conversion success !");
    }
}

但是,在天蓝色的控制台上显示并不是很有用。我想创建一个接口和它的2个实现。

public interface ILog
{
    void Write(string str);
    void WriteLinge(string str);
}

public static class LogAzure : ILog
{
    public static void WriteLine(string str)
    {
        Trace.WriteLine(str);
    }

}


public static class LogConsole : ILog
{
    public static void WriteLine(string str)
    {
        Console.WriteLine(str);
    }
}

所以在我的转换方法中,我必须使用ILog.WriteLine()。

问题:
首先 - 更重要的是 - 这是一个好主意/实践吗?

如果是:
怎么知道我在Azure中? (RoleEnvironment.IsAvailable ??)
如何使用LogAzure或LogConsole? (对我的方法有争议吗?)

1 个答案:

答案 0 :(得分:1)

在这两种情况下都应该使用Trace。将控制台应用配置为使用ConsoleTraceListener和azure版本以使用Azure diagnostics