0

How can I setup python's module logging so that every line it prints to the file starts with a specific string?

Konrad Rudolph
  • 530,221
  • 131
  • 937
  • 1,214
Sky
  • 379
  • 3
  • 13
  • 2
    Refer [How to ask mcve](https://stackoverflow.com/help/minimal-reproducible-example) – Sociopath Sep 30 '19 at 08:52
  • Possible duplicate of [How to write to a file, using the logging Python module?](https://stackoverflow.com/questions/6386698/how-to-write-to-a-file-using-the-logging-python-module) – Hampus Larsson Sep 30 '19 at 08:57

2 Answers2

1

You can do this via the log formatter. Here's a simple example configuring it via logging.basicConfig:

import logging
logging.basicConfig(format="Hello at %(asctime)s %(message)s: %(levelname)s")
logging.warning("world")
Joe Halliwell
  • 1,155
  • 6
  • 21
  • So this makes sense, thanks. But the string that I want to print is the time of printing. So how can I make the 'hello' be a variable? – Sky Sep 30 '19 at 09:10
  • Ah, well check the documentation. But I'll add a timestamp to my example. – Joe Halliwell Sep 30 '19 at 09:16
0

Using python logging

Formatting the Output

You can pass any variable that can be represented as a string from your program as a message to your logs. If you for example want to log the process ID along with the level and message, you can do something like this:

import logging

logging.basicConfig(format='%(process)d-%(levelname)s-%(message)s')
logging.warning('This is a Warning')

# Output:
# 18472-WARNING-This is a Warning

For further details see documentation on realpython.

mrk
  • 8,059
  • 3
  • 56
  • 78