Aqui está um exemplo que usa Java. Já faz um tempo desde que usei o log4j, mas pelo que me lembro, toda a ferramenta de log do log4j seria inicializada a partir de um arquivo XML. O próprio arquivo XML pode conter vários criadores de logs com configurações diferentes (onde você escreve, em que níveis são gravados etc.). Portanto, nesse caso, você teria objetos de criador de logs em vez de métodos estáticos de criador de logs para especificar qual criador de logs deseja chamar. Ou seja.
Logger logger = Logger.get("Network");
registraria coisas relacionadas à conectividade de rede, pacotes descartados etc. ou
Logger logger = Logger.get("Application");
que registraria itens relacionados à sua aplicação / lógica comercial. Pelo menos com o log4j, você também pode configurar quais níveis de log são realmente gravados (informações, rastreamento, aviso, erro, depuração sendo os níveis padrão disponíveis).
Se você tivesse métodos estáticos, o melhor que você poderia fazer é configurar um único criador de logs que apontaria para um padrão, um arquivo etc., mas tudo o que você registraria iria para o mesmo local. Com os objetos do criador de logs, é mais fácil fazê-lo para que suas informações de registro sejam espalhadas em vários arquivos.