You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We store our connection strings and credentials outside of our app in a secrets vault, but we like to keep the rest of our config in config files. We marry the two just before starting up the app. The following code works great with other targets such as the DatabaseTarget, but doesn't work with MongoTarget.
static void Main(string[] args)
{
Logger logger = NLog.LogManager.GetCurrentClassLogger();
// do startup activities like building the host and log to files
try
{
// build host
}
catch (Exception ex)
{
// logger.LogException()
// the logger never writes anything to mongo and never throws an error
}
// set connection string after retrieving username/password from secrets store
var mongo = LogManager.Configuration.FindTargetByName("mongoCustom") as MongoTarget;
mongo.ConnectionString = "mongodb://localhost/Logging";
LogManager.ReconfigExistingLoggers();
// run the host
try
{
// host.Run()
}
catch (Exception ex)
{
// logger.LogException()
}
}
When Mongo-Target initializes then it validates if connnectionString contains an non-empty value. If the value is empty then the Mongo-Target throws an exception, and the Mongo-Target goes into disabled state (Stays disabled even after having updated ConnectionString-property).
Alternative solution is doing this:
mongo.ConnectionString ="mongodb://localhost/Logging";
LogManager.Configuration = LogManager.Configuration;// Close all targets and initialize them again
But it can have side-effects, and might not work with all custom NLog-targets
We store our connection strings and credentials outside of our app in a secrets vault, but we like to keep the rest of our config in config files. We marry the two just before starting up the app. The following code works great with other targets such as the DatabaseTarget, but doesn't work with MongoTarget.
<target xsi:type="Mongo" name="mongoCustom" includeDefaults="false" collectionName="CustomLog" cappedCollectionSize="26214400">
The text was updated successfully, but these errors were encountered: