Многие ваши требования (я думаю, что все, кроме языковой независимости) выполняются log4net
Поскольку вы хотите использовать несколько программных компонентов для использования регистратора, я бы предложил написатьСлужба Windows самостоятельно, так как она может использоваться всеми типами вашего клиентского программного обеспечения (C ++, C #, ...)