У меня есть два класса ExceptionLog
и DebugLog.
public class ExceptionLog {
public static String StackTrace {get; set;}
public static String ClassName {get; set;}
public static String MethodName {get; set;}
public static String LogType {get;set;}
public static Exception ex {get;set;}
public Static void Debug(Exception ex)
{
logType = 'EXCEPTION';
ex = ex;
log();
}
public Static void log()
{
try
{
extractException();
writeToObject();
}
catch(Exception e)
{
//new ExceptionLog().Module('LogException').log(e);
}
}
public static void extractException()
{
// Logic here
}
public static void writeToObject()
{
// data save to object logic here
}
}
и
public class DebugLog {
public static String LogType {get;set;}
public static String DebugMessage {get;set;}
public Static void Debug(String message)
{
Debug(null, message);
}
public Static void Debug(LoggingLevel level, String message)
{
if(level != null )
{
LogType = String.valueOf(level);
}
DebugMessage = message;
log();
}
public Static void log()
{
// Log logic here
}
}
То, чего я хочу достичь, - написать класс контроллера, который решит, какой debug
метод должен быть вызван
public class Log {
public void Debug(String message)
{
DebugLog.Debug(message);
}
public void Debug(loggingLevel loggingLevel, String message)
{
DebugLog.Debug(loggingLevel, message);
}
public void Debug(Exception ex)
{
ExceptionLog.Debug(ex);
}
}
То есть, если я передам исключение в методе отладки, он вызовет ExceptionLog.Debug(ex)
, иначе он вызовет метод отладки из DebugLog
класса.
Как мне разработать классы более элегантно, или какой-либо шаблон дизайна здесь подходит?