Loupe Agent supports multiple ways of providing it configuration data. In particular, it supports both configuration files (e.g. app.config and web.config) and configuration via code in your application (for example the Log.Initializing event). With multiple ways of providing configuration, what happens when configuration options are provided through multiple paths at the same time?
Order of Configuration
Loupe follows a deterministic pattern of applying configuration data:
- Load Default Configuration: The configuration objects are created using all default values as listed in the documentation.
- Apply Configuration Files: Each configuration line that can be parsed from the config file overrides the default for each value it specifies.
- Coded Configuration: The merged configuration is presented to your application code during the Log.Initializing event. You can modify it, overriding the configuration.
- Configuration Normalization: The configuration objects are checked for out of range or nonsensical values which are replaced with reasonable defaults (for example specifying a negative maximum size causes it to revert to the default maximum size).