You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by "Thorsten Schöning (JIRA)" <lo...@logging.apache.org> on 2014/02/10 15:54:19 UTC

[jira] [Commented] (LOGCXX-339) Child thread does not inherit a copy of the mapped diagnostic context of its parent

    [ https://issues.apache.org/jira/browse/LOGCXX-339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896620#comment-13896620 ] 

Thorsten Schöning commented on LOGCXX-339:
------------------------------------------

I removed the wrong documentation but leave the bug open for now.

> Child thread does not inherit a copy of the mapped diagnostic context of its parent
> -----------------------------------------------------------------------------------
>
>                 Key: LOGCXX-339
>                 URL: https://issues.apache.org/jira/browse/LOGCXX-339
>             Project: Log4cxx
>          Issue Type: Bug
>    Affects Versions: 0.10.0
>         Environment: Debian (Etch) Linux - x86 64-bit
>            Reporter: Ben Humphreys
>            Assignee: Curt Arnold
>            Priority: Minor
>
> The API documentation for MDC says "The MDC is managed on a per thread basis. A child thread automatically inherits a copy of the mapped diagnostic context of its parent."
> However this does not appear to be the case. Take the following testcase:
> #include <iostream>
> #include <pthread.h>
> #include <log4cxx/mdc.h>
> void *threadfunc(void *arg)
> {
>     std::cout << "child: " << log4cxx::MDC::get("mykey") << std::endl;
> }
> int main(int argc, char *argv[])
> {
>     pthread_t thread_id;
>     log4cxx::MDC::put("mykey", "123");
>     std::cout << "main: " << log4cxx::MDC::get("mykey") << std::endl;
>     pthread_create(&thread_id, NULL, threadfunc, NULL);
>     pthread_join(thread_id, NULL);
>     return 0;
> }
> This should return:
> main: 123
> child: 123
> But instead returns:
> main: 123
> child: 
> This behavior is noted in a more serious application where MDC is used to add fields (such as hostname and MPI rank) to the logger output.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)