Почти год спустя, но я думал, что все равно внесу свой вклад!
Исходя из вашего комментария к сообщению Карла, я думаю, что, возможно, вы неправильно поняли, как работает log4net. Да, имя регистратора действительно идентифицирует регистратор. Да, у регистратора может быть много дополнений. НО, многие регистраторы также могут писать в тот же appender. Таким образом, вы можете настроить регистраторы «A», «B» и «C» для всего журнала в файл «X». Вы можете получить регистраторы, как это:
ILog logger_a = LogManager.GetLogger("A");
ILog logger_b = LogManager.GetLogger("B");
ILog logger_c = LogManager.GetLogger("C");
Теперь, если вы войдете в систему с помощью любого из этих регистраторов, они МОГУТ перейти в одно и то же место (файл "X"), если вы настроили их таким образом.
Преимущество НЕ использовать одно и то же имя регистратора в вашем приложении состоит в том, что вы можете контролировать уровень ведения журнала в разных местах приложения через файл конфигурации. Итак, если код, который использует регистраторы «A» и «B», работает нормально, но код, который использует регистратор «C», имеет проблему, вы можете отключить «A» и «B» и включить « С "весь путь вверх. Таким образом, у вас будет меньше информации, чтобы найти свою проблему.
Большинство людей (или, по крайней мере, большинство примеров log4net) фактически создают экземпляр статического регистратора для каждого КЛАССА, названного для этого класса (точный синтаксис я не помню, но примеры легко найти). Это дает вам очень высокий уровень детализации для управления вашим журналом.
В своем файле app.config вы можете управлять всеми регистраторами на одном уровне, настроив один регистратор с именем "*", или вы можете настроить определенные регистраторы (используя полное имя типа), или вы можете даже настроить часть полное имя типа. Например, вы могли бы очень легко сделать так, чтобы все классы в пространстве имен ABC регистрировались на уровне «info», все классы в пространстве имен DEF регистрировались на уровне «error», а все классы в пространстве имен GHI вообще не регистрировались. И все эти регистраторы могут регистрироваться в одном и том же месте назначения (например, в файле X).
Возможно, было слишком поздно, чтобы помочь, но, возможно, нет ...