FileNotFoundError thrown due to file name in file, rather than file itself

Loris Bennett loris.bennett at fu-berlin.de
Mon Nov 11 09:05:56 EST 2024


Hi,

I have the following in my program:

    try:
        logging.config.fileConfig(args.config_file)
        config = configparser.ConfigParser()
        config.read(args.config_file)
        if args.verbose:
            print(f"Configuration file: {args.config_file}")
    except FileNotFoundError:
        print(f"Error: configuration file {args.config_file} not found.  Exiting.")
        sys.exit(0)

and when I ran the program I got the error

  Error: configuration file /usr/local/etc/sc_mailer not found.  Exiting.

However, this file *does* exist and *can* be read.  By checking the
'filename' attribute of the exception I discovered that the problem was
the log file defined *in* the config file, namely

  [handler_fileHandler]
  class=FileHandler
  level=DEBUG
  formatter=defaultFormatter
  args=('/var/log/my_prog.log', 'a')

This log file did not exist.  The exception is thrown by 

  logging.config.fileConfig(args.config_file)

My questions are:

1. Should I be surprised by this behaviour?
2. In terms of generating a helpful error message, how should one
   distinguish between the config file not existing and the log file not
   existing?

Cheers,

Loris

-- 
This signature is currently under constuction.


More information about the Python-list mailing list