Re: ThreadContext vs asynchronous app

2015-05-21 Thread Mikael Ståldal
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

2015-05-20 Thread Gary Gregory
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

2015-05-18 Thread Mikael Ståldal
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

2015-05-18 Thread Gary Gregory
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

2015-05-08 Thread Mikael Ståldal
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.