Hello Brent,
Your current implementation is also the solution we usually recommend: adding one or more sessions for each library (e.g., for each namespace) with different names and/or colors and using a single SmartInspect object that is used for writing the logging data.
once I move to a file logging scenario I'm not sure if there will be concurrency problems.
As long as you are using the same SmartInspect parent object for all sessions, there will be no concurrency problems with log files. The SmartInspect class synchronizes the access to the log file so it's safe to use from multiple sessions/libraries and/or threads.
To make sure that all sessions share the same parent SmartInspect object, it's usually a good idea to use the SiAuto.Si object for adding sessions:
var someSession = SiAuto.Si.AddSession("Some session!");
In the master project, you would then configure the SiAuto.Si object (connections, log level, enabled status etc.) and all sessions would share the same connections and options. Hope this helps.
Regards,
Tobias