In the clear light of day, another option springs to mind, which would hopefully be better all round.
Sure, I use l4n myself right now, but who's to say I will in the future? What if I want to write to the .NET trace output, or to some home grown logger?
How about this: You expose virtual methods - either one per logging type, or just one, which takes an additional param of the log level.
By default, these write to the standard edtftp log, whatever that may be.
But I can override them to write to capture the log events and write to log4net or any other logger I choose to implement.
Okay, this means that:
a) logging has to be configured for edtftp AND for my logger separately and
b) all your logging has to be rewritten (potentially, depends on how it is written now) to use these virtual functions.
At least this means that everyone can use the logger of their choice - not everyone will like l4n if you go for that anyway.
thoughts?