test: apply microsecond precision to test framework logging
This makes it easier to compare test and bitcoind logs - combine_logs.py orders by timestamp and will be more precise.
This commit is contained in:
1 parent
e872a566f2
commit
ed179e0a65
1 file changed
+10
-2
@@ -7,6 +7,7 @@
|
|||||||
import configparser
|
import configparser
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
import argparse
|
import argparse
|
||||||
|
from datetime import datetime, timezone
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
@@ -837,9 +838,16 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
|||||||
# User can provide log level as a number or string (eg DEBUG). loglevel was caught as a string, so try to convert it to an int
|
# User can provide log level as a number or string (eg DEBUG). loglevel was caught as a string, so try to convert it to an int
|
||||||
ll = int(self.options.loglevel) if self.options.loglevel.isdigit() else self.options.loglevel.upper()
|
ll = int(self.options.loglevel) if self.options.loglevel.isdigit() else self.options.loglevel.upper()
|
||||||
ch.setLevel(ll)
|
ch.setLevel(ll)
|
||||||
|
|
||||||
# Format logs the same as bitcoind's debug.log with microprecision (so log files can be concatenated and sorted)
|
# Format logs the same as bitcoind's debug.log with microprecision (so log files can be concatenated and sorted)
|
||||||
formatter = logging.Formatter(fmt='%(asctime)s.%(msecs)03d000Z %(name)s (%(levelname)s): %(message)s', datefmt='%Y-%m-%dT%H:%M:%S')
|
class MicrosecondFormatter(logging.Formatter):
|
||||||
formatter.converter = time.gmtime
|
def formatTime(self, record, _=None):
|
||||||
|
dt = datetime.fromtimestamp(record.created, timezone.utc)
|
||||||
|
return dt.strftime('%Y-%m-%dT%H:%M:%S.%f')
|
||||||
|
|
||||||
|
formatter = MicrosecondFormatter(
|
||||||
|
fmt='%(asctime)sZ %(name)s (%(levelname)s): %(message)s',
|
||||||
|
)
|
||||||
fh.setFormatter(formatter)
|
fh.setFormatter(formatter)
|
||||||
ch.setFormatter(formatter)
|
ch.setFormatter(formatter)
|
||||||
# add the handlers to the logger
|
# add the handlers to the logger
|
||||||
|
|||||||
Reference in new issue
Block a user