Or Smith
Or Smith

Reputation: 3606

Python / How to get logger with absolute path?

I try to use the logging of python:

import logging

log = logging.getLogger(__name__)
logInstall = logging.getLogger('/var/log/install.log')

log.info("Everything works great")
logInstall.info("Why is not printed to the log file?")

In the log file of the log, every thing works and it prints: "Everything works great"

But in /var/log/install.log, I don't see anything.

What I do wrong?

Upvotes: 0

Views: 1856

Answers (1)

bruno desthuilliers
bruno desthuilliers

Reputation: 77912

Where have you seen that the argument to logging.getLogger() was a file path ??? It's only a name for your logger object:

logging.getLogger([name])

Return a logger with the specified name or, if no name is specified, return a logger which is the root logger of the hierarchy. If specified, the name is typically a dot-separated hierarchical name like “a”, “a.b” or “a.b.c.d”. Choice of these names is entirely up to the developer who is using logging.

https://docs.python.org/2/library/logging.html#logging.getLogger

Where / how this logger logs to (file, stderr, syslog, mail, network call, whatever) depends on how you configure the logging for your own app - the point here is that you decouple the logger's use (in the libs) from the logger config (in the app).

Note that the usual practice is to use __name__ so you get a logger hierarchy that mimics the packages / modules hierarchy.

Upvotes: 1

Related Questions