我在 Linux 中使用 log4cplus-1.1.2。似乎没有办法设置thread_name
和thread_name2
in struct per_thread_data
。
struct per_thread_data
文件 internal.h 中第 111-130 行的定义如下:
//! Per thread data.
struct per_thread_data
{
per_thread_data ();
~per_thread_data ();
tostringstream macros_oss;
tostringstream layout_oss;
DiagnosticContextStack ndc_dcs;
MappedDiagnosticContextMap mdc_map;
log4cplus::tstring thread_name;
log4cplus::tstring thread_name2;
gft_scratch_pad gft_sp;
appender_sratch_pad appender_sp;
log4cplus::tstring faa_str;
log4cplus::tstring ll_str;
spi::InternalLoggingEvent forced_log_ev;
std::FILE * fnull;
log4cplus::helpers::snprintf_buf snprintf_buf;
};
log4cplus 将为每个线程分配这样的结构以进行日志记录。
调用LOG4CPLUS_EXPORT log4cplus::tstring const & getCurrentThreadName()
和LOG4CPLUS_EXPORT log4cplus::tstring const & getCurrentThreadName2()
是分别访问thread_name
和的唯一方法thread_name2
。但是,用户不能修改他们的值。