ffc team mailing list archive
-
ffc team
-
Mailing list archive
-
Message #02034
Re: [UFL-dev] [HG UFL] Add function set_loglevel in output.py and change printing in ad.py to ufl_debug.
On Tue, Jan 13, 2009 at 08:53:32AM +0100, Martin Sandve Alnæs wrote:
> On Mon, Jan 12, 2009 at 11:51 PM, Anders Logg <logg@xxxxxxxxx> wrote:
> > On Mon, Jan 12, 2009 at 10:17:53PM +0100, UFL wrote:
> >> One or more new changesets pushed to the primary ufl repository.
> >> A short summary of the last three changesets is included below.
> >>
> >> changeset: 497:da99d5c093fb248990c351324a4e49bd28c877c5
> >> tag: tip
> >> user: Anders Logg <logg@xxxxxxxxx>
> >> date: Mon Jan 12 22:14:47 2009 +0100
> >> files: ufl/algorithms/ad.py ufl/output.py
> >> description:
> >> Add function set_loglevel in output.py and change printing in ad.py to ufl_debug.
> >
> > Changed to
> >
> > log.set_level(INFO)
> > log.set_level(DEBUG)
> > etc
> >
> > in new log.py module.
> >
> > This is not yet used in UFL, but I suggest we move to it.
> >
> > I've added some new features copied from the old log module (debug.py)
> > in FFC:
> >
> > 1. Writing messages and inreasing/decreasing indentation:
> >
> > begin("Analyzing form")
> > <nested print statements>
> > end()
> >
> > 2. One-liners for checks and similar:
> >
> > info("Checking whether form is valid...")
> > if <check>:
> > info("yes")
> > else:
> > info("no")
> >
> > Results in
> >
> > Checking whether form is valid... yes
>
> Ok, this looks good.
>
> But you can't do what you do in FFC, you're hijacking the entire UFL
> log instead of tapping in on its output. So if I do:
>
> import ffc
> import sfc
> sfc.dostuff() # UFL log output would be in the FFC log
>
> and I can't get the UFL log output from SFC.
>
>
> What you want to do (what logging is designed to do) is
> make your own FFC logger, and attach your FFC logging
> handler to the UFL logger, which merges the output of both
> logs in the same stream. A logger can have several handlers,
> so FFC and SFC can both do that .
>
> Martin
That sounds like I must reproduce all the functions in log.py in UFL
also in FFC. If I want to do say
info("foo")
in FFC, then if I call the info() function in UFL, the UFL logger will
be used.
Is there a way that I can reuse the functions in log.py in UFL without
needing to reimplement them in FFC?
--
Anders
Attachment:
signature.asc
Description: Digital signature
Follow ups
References