Re: ThreadContext vs asynchronous app
A good start would be to implement what I suggest in https://issues.apache.org/jira/browse/LOG4J2-1010, add possibility to set the context map in calls to the methods in the Logger interface. That would make it possible to implement what I need on top of Log4j 2. I can't come up with any really convenient way to do it in Java, but in Scala (which I mostly use) you can use implicit parameters and provide a wrapper like this: trait ScalaLogger { def info(message: String)(implicit context: ContextMap): Unit } On Thu, May 21, 2015 at 6:40 AM, Gary Gregory garydgreg...@gmail.com wrote: Mikael, Any thoughts on how to get this to work for you? Feel free to dig into the code, we are always looking new for contributors :-) Gary On Mon, May 18, 2015 at 10:25 AM, Mikael Ståldal mikael.stal...@magine.com wrote: No, not really. There is some discussion on this JIRA issue, but it does not solve my problem: https://issues.apache.org/jira/browse/LOG4J2-1010 And even my suggestion in the JIRA issue is not ideal solution, just a possible workaround. What I really want is something which work like ThreadContext, and implicitly put data into the context map of log messages, but which is not tied to a JVM Thread. (I am using Log4j 2.3 now, but that doesn't seem to make any difference for this.) On Mon, May 18, 2015 at 7:13 PM, Gary Gregory garydgreg...@gmail.com wrote: Mikael, Did you get any help on this? Gary On Fri, May 8, 2015 at 1:51 AM, Mikael Ståldal mikael.stal...@magine.com wrote: I have an asynchronous web app (in Scala based on Twitter Finagle, not using Servlet API). I use Log4j 2.2 for logging, and I want to tag log messages with some information about requests (such as client IP address and authenticated user ID). In a synchronous Servlet based web app, you can use Log4j's TheradContext for this, but it doesn't work in Finagle's asynchronous environment since there is no correlation between threads and requests. How can I do this? -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition http://www.manning.com/bauer3/ JUnit in Action, Second Edition http://www.manning.com/tahchiev/ Spring Batch in Action http://www.manning.com/templier/ Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition http://www.manning.com/bauer3/ JUnit in Action, Second Edition http://www.manning.com/tahchiev/ Spring Batch in Action http://www.manning.com/templier/ Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.
Re: ThreadContext vs asynchronous app
Mikael, Any thoughts on how to get this to work for you? Feel free to dig into the code, we are always looking new for contributors :-) Gary On Mon, May 18, 2015 at 10:25 AM, Mikael Ståldal mikael.stal...@magine.com wrote: No, not really. There is some discussion on this JIRA issue, but it does not solve my problem: https://issues.apache.org/jira/browse/LOG4J2-1010 And even my suggestion in the JIRA issue is not ideal solution, just a possible workaround. What I really want is something which work like ThreadContext, and implicitly put data into the context map of log messages, but which is not tied to a JVM Thread. (I am using Log4j 2.3 now, but that doesn't seem to make any difference for this.) On Mon, May 18, 2015 at 7:13 PM, Gary Gregory garydgreg...@gmail.com wrote: Mikael, Did you get any help on this? Gary On Fri, May 8, 2015 at 1:51 AM, Mikael Ståldal mikael.stal...@magine.com wrote: I have an asynchronous web app (in Scala based on Twitter Finagle, not using Servlet API). I use Log4j 2.2 for logging, and I want to tag log messages with some information about requests (such as client IP address and authenticated user ID). In a synchronous Servlet based web app, you can use Log4j's TheradContext for this, but it doesn't work in Finagle's asynchronous environment since there is no correlation between threads and requests. How can I do this? -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition http://www.manning.com/bauer3/ JUnit in Action, Second Edition http://www.manning.com/tahchiev/ Spring Batch in Action http://www.manning.com/templier/ Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition http://www.manning.com/bauer3/ JUnit in Action, Second Edition http://www.manning.com/tahchiev/ Spring Batch in Action http://www.manning.com/templier/ Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory
Re: ThreadContext vs asynchronous app
No, not really. There is some discussion on this JIRA issue, but it does not solve my problem: https://issues.apache.org/jira/browse/LOG4J2-1010 And even my suggestion in the JIRA issue is not ideal solution, just a possible workaround. What I really want is something which work like ThreadContext, and implicitly put data into the context map of log messages, but which is not tied to a JVM Thread. (I am using Log4j 2.3 now, but that doesn't seem to make any difference for this.) On Mon, May 18, 2015 at 7:13 PM, Gary Gregory garydgreg...@gmail.com wrote: Mikael, Did you get any help on this? Gary On Fri, May 8, 2015 at 1:51 AM, Mikael Ståldal mikael.stal...@magine.com wrote: I have an asynchronous web app (in Scala based on Twitter Finagle, not using Servlet API). I use Log4j 2.2 for logging, and I want to tag log messages with some information about requests (such as client IP address and authenticated user ID). In a synchronous Servlet based web app, you can use Log4j's TheradContext for this, but it doesn't work in Finagle's asynchronous environment since there is no correlation between threads and requests. How can I do this? -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition http://www.manning.com/bauer3/ JUnit in Action, Second Edition http://www.manning.com/tahchiev/ Spring Batch in Action http://www.manning.com/templier/ Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.
Re: ThreadContext vs asynchronous app
Mikael, Did you get any help on this? Gary On Fri, May 8, 2015 at 1:51 AM, Mikael Ståldal mikael.stal...@magine.com wrote: I have an asynchronous web app (in Scala based on Twitter Finagle, not using Servlet API). I use Log4j 2.2 for logging, and I want to tag log messages with some information about requests (such as client IP address and authenticated user ID). In a synchronous Servlet based web app, you can use Log4j's TheradContext for this, but it doesn't work in Finagle's asynchronous environment since there is no correlation between threads and requests. How can I do this? -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition http://www.manning.com/bauer3/ JUnit in Action, Second Edition http://www.manning.com/tahchiev/ Spring Batch in Action http://www.manning.com/templier/ Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory
ThreadContext vs asynchronous app
I have an asynchronous web app (in Scala based on Twitter Finagle, not using Servlet API). I use Log4j 2.2 for logging, and I want to tag log messages with some information about requests (such as client IP address and authenticated user ID). In a synchronous Servlet based web app, you can use Log4j's TheradContext for this, but it doesn't work in Finagle's asynchronous environment since there is no correlation between threads and requests. How can I do this? -- [image: MagineTV] *Mikael Ståldal* Senior backend developer *Magine TV* mikael.stal...@magine.com Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.