擅长:python、mysql、java
<p>或者,您可以实现自定义记录器,并在日志模块中将其设为默认值。</p>
<p>以下是示例:</p>
<pre><code>import logging
import ctypes
SYS_gettid = 186
libc = ctypes.cdll.LoadLibrary('libc.so.6')
FORMAT = '%(asctime)-15s [thread=%(tid)s] %(message)s'
logging.basicConfig(level=logging.DEBUG, format=FORMAT)
def my_tid_extractor():
tid = libc.syscall(SYS_gettid)
return {'tid': tid}
class CustomLogger(logging.Logger):
def _log(self, level, msg, args, exc_info=None, extra=None):
if extra is None:
extra = my_tid_extractor()
super(CustomLogger, self)._log(level, msg, args, exc_info, extra)
logging.setLoggerClass(CustomLogger)
logger = logging.getLogger('test')
logger.debug('test')
</code></pre>
<p>输出样本:</p>
<pre><code>2015-01-20 19:24:09,782 [thread=5017] test
</code></pre>