Google Mail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Using logging module for conditional nested logs
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  5 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Follow-up To:
Add Cc | Add Follow-up to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers that you hear
 
Reckoner  
View profile   Translate to Translated (View Original)
 More options 4 Nov, 19:40
Newsgroups: comp.lang.python
From: Reckoner <recko...@gmail.com>
Date: Wed, 4 Nov 2009 11:40:41 -0800 (PST)
Local: Wed 4 Nov 2009 19:40
Subject: Using logging module for conditional nested logs
Hi,

I am getting started with your logging module and I went through the
tutorial and know-how to create a top-level 'root' logger with the
appropriate handlers.

I have a number of functions,say,

def foo1()

def foo2()
   ...
   foo1() # foo2 calls foo1

and I know how to connect each of these functions to the 'root' logger
by doing something like

def foo1()
  logger  = getLogger('root.foo1')

but I want to arrange it so that foo1 adds to the logfile that foo2 is
using ONLY when foo2 calls foo1. In other words, if I do

def foo2()
  logger  = getLogger('root.foo2')

or

def foo1()
  logger  = getLogger('root.foo2.foo1')

it responds to the 'root' logger when I want it to respond to *any*
logger that is attached to foo2.

Then, the question is how can I set up foo1 to log to whatever logger
foo2 is using. The purpose of doing this is that I am interested in
capturing when and by whom foo1 is called in whatever logger foo2 is
using. So, if I attach a separate logger to a third function, say, foo3
(), then I can avoid reporting those instances when foo3 calls foo1.

I hope that made some sense.


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Vinay Sajip  
View profile   Translate to Translated (View Original)
 More options 4 Nov, 21:30
Newsgroups: comp.lang.python
From: Vinay Sajip <vinay_sa...@yahoo.co.uk>
Date: Wed, 4 Nov 2009 13:30:42 -0800 (PST)
Local: Wed 4 Nov 2009 21:30
Subject: Re: Using logging module for conditional nested logs
On Nov 4, 7:40 pm, Reckoner <recko...@gmail.com> wrote:

> I hope that made some sense.

Not especially :-(

Sorry I don't understand exactly what you mean, because I find your
terminology confusing. For example, "logger that is attached to foo2"
- loggers are not attached to functions. "It responds to the 'root'
logger" - what responds? What's meant by "respond"?

Loggers correspond to specific code components in an application.
Normally these areas are modules and sometimes they're classes.

You can certainly treat functions as areas but this will typically
become unwieldy in any sizeable application. It doesn't (in general)
make sense to have a specific logger for foo1 for use only when it's
called by foo2. These seem like anti-patterns to me.

Handlers are attached to loggers to make events logged via those
loggers available to different audiences - via console, file, email
etc.

If you want to log that foo1 is being called by foo2, you can do this.
For example, you could have a utility function which walks (a
sufficient part of) the call stack to see the function call hierarchy,
then log this as additional information (e.g. using the 'extra'
parameter to the logging call). You can attach Filters to loggers and
handlers which use this information to decide where and whether to
actually record the event.

As well as the Python logging documentation, you may also find the
following link useful:

http://plumberjack.blogspot.com/2009/09/python-logging-101.html

Regards,

Vinay Sajip


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Reckoner  
View profile   Translate to Translated (View Original)
 More options 4 Nov, 23:14
Newsgroups: comp.lang.python
From: Reckoner <recko...@gmail.com>
Date: Wed, 4 Nov 2009 15:14:54 -0800 (PST)
Local: Wed 4 Nov 2009 23:14
Subject: Re: Using logging module for conditional nested logs
On Nov 4, 1:30 pm, Vinay Sajip <vinay_sa...@yahoo.co.uk> wrote:

I appreciate your patience, as I am new to this.

Your comments have put me on the right track. I will look at the link
you specify.

Thanks again.


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jean-Michel Pichavant  
View profile   Translate to Translated (View Original)
 More options 5 Nov, 10:10
Newsgroups: comp.lang.python
From: Jean-Michel Pichavant <jeanmic...@sequans.com>
Date: Thu, 05 Nov 2009 11:10:33 +0100
Local: Thurs 5 Nov 2009 10:10
Subject: Re: Using logging module for conditional nested logs

_foo2Logger = None

def foo2():
    global _foo2Logger
    _foo2Logger = whateverLogger
    foo1()

def foo1():
    foo1Logger = logging.getLogger(_foo2Logger.name + '.foo1') # this is
how you can "attach" dynamically a logger to another
    foo1Logger.info('')

But for all the reasons expressed by Vinay, you don't want to do that.

Jean-Michel


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Vinay Sajip  
View profile   Translate to Translated (View Original)
 More options 7 Nov, 11:45
Newsgroups: comp.lang.python
From: Vinay Sajip <vinay_sa...@yahoo.co.uk>
Date: Sat, 7 Nov 2009 03:45:58 -0800 (PST)
Local: Sat 7 Nov 2009 11:45
Subject: Re: Using logging module for conditional nested logs
On Nov 4, 11:14 pm, Reckoner <recko...@gmail.com> wrote:

> Thanks again.

You're welcome. You asked (on a Logging 101 blog comment) for a
tutorial on how to use Filters. I can point you this Stack Overflow
question:

http://stackoverflow.com/questions/1383254/logging-streamhandler-and-...

The answer is perhaps the tutorial you asked for. Another example is
given in this test script:

http://opensolaris.org/sc/src/xen-gate/xvm-3.3+xen.hg/tools/python/lo...

Hope it helps.

Regards,

Vinay Sajip


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google