How to Customize the time format for Python logging?
Become part of the top 3% of the developers by applying to Toptal https://topt.al/25cXVn
--
Track title: CC F Haydns String Quartet No 53 in D
--
Chapters
00:00 Question
01:20 Accepted answer (Score 323)
01:55 Answer 2 (Score 275)
02:25 Answer 3 (Score 60)
03:08 Answer 4 (Score 38)
03:26 Thank you
--
Full question
https://stackoverflow.com/questions/3220...
Accepted answer links:
[official documentation]: http://docs.python.org/2/library/logging...
Answer 3 links:
[variable list]: https://docs.python.org/3/library/time.h...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #datetime #logging #formatting
#avk47
--
Track title: CC F Haydns String Quartet No 53 in D
--
Chapters
00:00 Question
01:20 Accepted answer (Score 323)
01:55 Answer 2 (Score 275)
02:25 Answer 3 (Score 60)
03:08 Answer 4 (Score 38)
03:26 Thank you
--
Full question
https://stackoverflow.com/questions/3220...
Accepted answer links:
[official documentation]: http://docs.python.org/2/library/logging...
Answer 3 links:
[variable list]: https://docs.python.org/3/library/time.h...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #datetime #logging #formatting
#avk47
ACCEPTED ANSWER
Score 348
From the official documentation regarding the Formatter class:
The constructor takes two optional arguments: a message format string and a date format string.
So change
# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")
to
# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s",
"%Y-%m-%d %H:%M:%S")
ANSWER 2
Score 324
Using logging.basicConfig, the following example works for me:
logging.basicConfig(
filename='HISTORYlistener.log',
level=logging.DEBUG,
format='%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
)
This allows you to format & config all in one line. A resulting log record looks as follows:
2014-05-26 12:22:52.376 CRITICAL historylistener - main: History log failed to start
ANSWER 3
Score 66
To add to the other answers, here is the variable list from Python Documentation.
Directive Meaning Notes
%a Locale’s abbreviated weekday name.
%A Locale’s full weekday name.
%b Locale’s abbreviated month name.
%B Locale’s full month name.
%c Locale’s appropriate date and time representation.
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%I Hour (12-hour clock) as a decimal number [01,12].
%j Day of the year as a decimal number [001,366].
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].
%p Locale’s equivalent of either AM or PM. (1)
%S Second as a decimal number [00,61]. (2)
%U Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0. (3)
%w Weekday as a decimal number [0(Sunday),6].
%W Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0. (3)
%x Locale’s appropriate date representation.
%X Locale’s appropriate time representation.
%y Year without century as a decimal number [00,99].
%Y Year with century as a decimal number.
%z Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59].
%Z Time zone name (no characters if no time zone exists).
%% A literal '%' character.
ANSWER 4
Score 42
if using logging.config.fileConfig with a configuration file use something like:
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S