Thanks for your posting. 1-3 are client-side features and could be implemented with a custom protocol for the SmartInspect libraries:
The custom protocol would basically combine the log files and TCP/IP protocols (whose classes could even be re-used internally) and can forward the log entries based on your custom logic.
Point 4 is difficult because SmartInspect does not have built-in authentication and this feature would need to be implemented with a custom packet type that is sent at the beginning of the log stream, for example. We have detailed information about SmartInspect’s protocols here on our website:
There’s also an introduction article about writing a simple server for SmartInspect (it’s for Delphi but should be helpful none the less):
There’s also the SmartInspect SDK (in .NET) which has many features you would need for a custom SmartInspect log server:
Last but not least, SmartInspect already has its own log server which may be used for the server part (it does not have authentication, though):
This setup also includes documentation.
For point 5, you can simply use the host/application name properties and/or sessions for your applications to differentiate the available clients in the Console (to create a View for each client, for example).
Just let me know in case you have any questions about one of these points.
I hope this helps,