Набросал вот простенький класс для логгирования в многопоточном приложении. Несколько смущает его простота и место, где я делаю lock(type). Покритикуйте, пожалуйста
public class Logger
{
private static Hashtable _logListHash = Hashtable.Synchronized(new Hashtable());
public static void AddLog(object source, string log)
{
Type type = source.GetType();
lock(type)
{
if(!_logListHash.ContainsKey(type))
{
string newLogString = string.Empty;
_logListHash[type] = newLogString;
}
string logString = (string)_logListHash[type];
logString += log;
_logListHash[type] = logString;
}
}
public static ICollection GetLogSourceList()
{
return _logListHash.Keys;
}
public static string GetLog(Type type)
{
if(!_logListHash.ContainsKey(type))
return "";
return (string)_logListHash[type];
}
}