如何在log4cplus中的struct per_thread_data中设置thread_name

时间:2014-08-22 07:46:15

标签: logging log4cplus

我在Linux中使用log4cplus-1.1.2。似乎无法在thread_name中设置thread_name2struct per_thread_data

文件internal.h在111-130行的struct per_thread_data定义:

//! 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_namethread_name2的唯一方式。但是,用户无法修改它们的值。

1 个答案:

答案 0 :(得分:0)

现在可以在log4cplus中设置线程名称,因为log4cplus 1.1.3-RC4和log4cplus 1.2.0-RC3使用log4cplus::thread::setCurrentThreadName()log4cplus::thread::setCurrentThreadName2()