Logger Switch til screen eller fil
Hej Eksperter, jeg er igang med at lave en lille simpel Wrapper til Console.WriteLine, som kan informere data'en efter nødvendighed, til skærm eller fil..SEVERE (highest)
WARNING
INFO
CONFIG
FINE
FINER
FINEST
Jeg regner med at bruge en simpel bitwise methode til at teste om en information skal printes til fil/skærm.. men mit spørgsmål er mere hvordan man bedst holder WriteLine ren, mens man stadig kan sende denne information med?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleTool
{
/// <summary>
/// WIP - Switch mellem Screen eller/og fil -logger
/// </summary>
public class Logger
{
public static void WriteLine()
{
Console.WriteLine();
}
public static void WriteLine(bool value)
{
Console.WriteLine(value);
}
public static void WriteLine(char value)
{
Console.WriteLine(value);
}
public static void WriteLine(char[] buffer)
{
Console.WriteLine(buffer);
}
public static void WriteLine(decimal value)
{
Console.WriteLine(value);
}
public static void WriteLine(double value)
{
Console.WriteLine(value);
}
public static void WriteLine(float value)
{
Console.WriteLine(value);
}
public static void WriteLine(int value)
{
Console.WriteLine(value);
}
public static void WriteLine(long value)
{
Console.WriteLine(value);
}
public static void WriteLine(object value)
{
Console.WriteLine(value);
}
public static void WriteLine(string value)
{
Console.WriteLine(value);
}
public static void WriteLine(uint value)
{
Console.WriteLine(value);
}
public static void WriteLine(ulong value)
{
Console.WriteLine(value);
}
public static void WriteLine(string format, object arg0)
{
Console.WriteLine(format, arg0);
}
public static void WriteLine(string format, params object[] arg)
{
Console.WriteLine(format, arg);
}
}
}
Som koden er ligenu, har den slet ikke denne feature indkodet, da jeg stadig bøvler med hvordan jeg ville gøre dette.
kan jeg sætte en static variable, med denne information, eller ville det være dumt?
jeg er kommet op med denne mulighed, men er den ok?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleTool
{
/// <summary>
/// WIP - Switch mellem Screen eller/og fil -logger
/// </summary>
///
public class Logger
{
public static int SEVERE = 1;
public static int WARNING = 2;
public static int INFO = 4;
public static int CONFIG = 8;
public static int FINE = 16;
public static int FINEST = 32;
public static int DebugLevel = WARNING; //Level som næste WriteLine vil blive skrevet med
public static int PrintLevel = SEVERE | WARNING;
private static bool _testPrint()
{
if ((DebugLevel & PrintLevel) != 0)
{
return true;
}
return false;
}
public static void WriteLine()
{
if (_testPrint())
{
Console.WriteLine();
}
}
public static void WriteLine(bool value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(char value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(char[] buffer)
{
if (_testPrint())
{
Console.WriteLine(buffer);
}
}
public static void WriteLine(decimal value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(double value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(float value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(int value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(long value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(object value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(string value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(uint value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(ulong value)
{
if (_testPrint())
{
Console.WriteLine(value);
}
}
public static void WriteLine(string format, object arg0)
{
if (_testPrint())
{
Console.WriteLine(format, arg0);
}
}
public static void WriteLine(string format, params object[] arg)
{
if (_testPrint())
{
Console.WriteLine(format, arg);
}
}
}
}