> 1.The logging is sent by MSMQ from multiple remote clients into a collector.
1. You can send logs using MSMQ, but there is no off-the-shelf
collector, so you have to write one. There is a sender/receiver pair
that uses WCF, which may work for you.
> 2. The logging is done asyncronously so that it either spawns a new thread
> or sends it immediately without blocking my current core thread.
2. Supported via AsyncTargetWrapper
> 3.The collector inserts into a SQL database using a sproc(optimized query).
3. Supported, just use EXEC sprocName as your SQL statement.
> 4. The database schema is customizable to accomodate new fields.
4. Supported. You can fully control the statement used to write logs
to a DB. NLog does not prescribe any particular schema.
> 5. Some kind of reporting alerting on a threshold of exception.
5. Not sure what you mean by that, but you can (for example) send
yourself an email when write to DB fails, or have the messages log to
a file in such situation. There is no support for threshold monitoring
(to get notified when DB gets too big, etc), but you can probably
integrate this outside of NLog.
Jarek