Я бы написал обертку для log4net, которая предоставляет такой метод:
void Debug(string message, IList elements);
Реализация может выглядеть следующим образом (некоторые детали опущены):
public Debug(string message, IList elements)
{
// this.Logger returns a reference to ILog object
if (this.Logger.IsDebugEnabled)
{
string logMessage;
// build the string that you want to write to the log
this.Logger.Debug(logMessage);
}
}
Это всего лишь пример: вы можете разработать свой интерфейс так, как вам больше подходит.
Здесь вы можете найти некоторые идеи, как может выглядеть обертка.