How come logging.error writes to a file, but not logging.debug or logging.info?

Dan Campbell dcwhatthe at gmail.com
Fri Mar 27 16:18:17 EDT 2020


Got it.  I had to set the minimum level, in the basic config, thus:

    logging.basicConfig( filename = "whatthe.log", level=logging.INFO )

All set, thanks for the tip.

Regards,

DC


On Thu, Mar 26, 2020 at 5:35 PM Cameron Simpson <cs at cskk.id.au> wrote:

> On 26Mar2020 14:02, dcwhatthe at gmail.com <dcwhatthe at gmail.com> wrote:
> >When we run
> >
> >    logging.basicConfig( filename = "TestLogging_" +
> datetime.datetime.now().strftime("%Y%m%d_%H%M%S") + ".log" )
> >
> >, and then
> >
> >    logging.error( "Test01\n" )
> >    logging.debug("Test02\n")
> >    logging.info("Test03\n")
> >    logging.error( "Test04\n" )
> >
> >, only the error log lines get sent to the file.
> >
> >How do I get info() and debug() to go to the file, as well?
>
> You do this by adjusting the logging level of your programme. The idea
> is that you can put logging calls all through your code at suitable
> levels (info, error, warning debug) and change the logging verbosity
> just by adjusting the logging level of the logger involved.
>
> So I often have a sniff around at startup in my programmes where I set
> up the logging, and default to logging.WARNING unless stderr is a
> terminal (inferring "interactive") and use logging.INFO. A command line
> switch or environment variable might be used to override these defaults.
> Having picked a level:
>
>     root_logger = logging.getLogger()
>     root_logger.setLevel(level)
>
> sets the level of the root logger, thus changing the verbosity.
>
> Obviously adjust if you've got a special purpose logger rather than the
> root logger.
>
> Cheers,
> Cameron Simpson <cs at cskk.id.au>
>


More information about the Python-list mailing list