Enable/Disable Enterprise Library logging on production

10,044

Solution 1

You can set your logging level in your config file, that way, should you need it in production for whatever reason, you can switch it on at any time.

Solution 2

You don't have to get in to custom filters. Assuming you have one category defined then you just need to set the Severity or SourceLevel that you want to log. It sounds like you want to set the SourceLevel to Information which "allows Critical, Error, Warning, and Information events through".

In config this would look something like:

<categorySources>
    <add switchValue="Information" name="General">
        <listeners>
            <add name="Formatted EventLog TraceListener" />
        </listeners>
    </add>
</categorySources>

In terms of best practices there is no one right way. Usually you would probably enable the logging of as little information as required to properly support the application. This will depend on the type of logging you've placed in your application. For most applications this would probably be Information or Warning. However, other factors could influence this including current application stability, operational requirements etc.

Share:
10,044
Abdel Raoof Olakara
Author by

Abdel Raoof Olakara

A Web enthusiast, who loves working on .NET and JavaScript. Over 14 years of experience with Web technologies, solution architecture and consulting.

Updated on June 04, 2022

Comments

  • Abdel Raoof Olakara
    Abdel Raoof Olakara almost 2 years

    On my production, I don't want to have log entry with severity Verbose (or Debug). I need only the info, error etc. What is the right method to enable and disable logging (the debug entries)?

    I did some research and one possibility is to use Custom Filter class to enable and disable all logs with severity "verbose". But When deploying application on production, what is the right way to enable and disable?

  • Jon Adams
    Jon Adams about 13 years
    It's definitely not the only way. But it is very common. And having an automated way to apply configuration changes per environment is a best practice. Manually changing the configuration values wouldn't be, but the idea of changing values in web.config per environment is a perfectly valid solution.
  • Abdel Raoof Olakara
    Abdel Raoof Olakara about 13 years
    And can you explain me the automated way of applying configuration changes? What I am look for is a way to enable and disable "DEBUG" logging for a deployed application. When some issue occurs, add a new patch, we need to keep the DEBUG on for a few hours.
  • Michael Freidgeim
    Michael Freidgeim over 12 years
    Details of possible filtering is well described in thejoyofcode.com/…
  • Randy Levy
    Randy Levy over 12 years
    @MichaelFreidgeim, I like the diagram -- it's easy to see the flow.
  • Scott Munro
    Scott Munro over 11 years
    Note that the 'name' attribute in the 'add' element within 'categorySources' is not intended to hold the name of the categorySource that is being added but rather the name of the category that it will route event entries from. i.e. 'General' is the name of a category in the example above - not the name of the categorySource.