diff -r 373392025533 -r 3b1579a7bffb degal/log.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/degal/log.py Wed Jun 03 19:03:28 2009 +0300 @@ -0,0 +1,81 @@ +# DeGAL - A pretty simple web image gallery +# Copyright (C) 2007 Tero Marttila +# http://marttila.de/~terom/degal/ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +import logging, sys + +log_level = logging.INFO +stack = [] + +class g : + out_depth = 0 + node = None + +def title (title, *args) : + stack.append(title) + + print "%s - %s" % (" "*g.out_depth, title % args) + + g.out_depth += 1 + +def down (dir_name, *args) : + stack.append(dir_name % args) + g.node = None + +def next (fname, *args) : + g.node = fname % args + +def up () : + stack.pop(-1) + g.node = None + g.out_depth = min(g.out_depth, len(stack)) + +def done () : + print "done" + +def log (level, message, *args, **kwargs) : + wait = kwargs.get("wait", False) + + if level >= log_level : + if g.out_depth != len(stack) : + for segment in stack[g.out_depth:] : + print "%sd %s" % (" "*g.out_depth, segment) + g.out_depth += 1 + + if g.node : + print "%sf %s" % (" "*g.out_depth, g.node) + g.node = None + + if wait : + print "%s - %s..." % (" "*g.out_depth, message % args), + sys.stdout.flush() + else : + print "%s - %s" % (" "*g.out_depth, message % args) + +def _level (level) : + def _log_func (message, *args, **kwargs) : + log(level, message, *args, **kwargs) + + return _log_func + +debug = _level(logging.DEBUG) +info = _level(logging.INFO) +warning = _level(logging.WARNING) +error = _level(logging.ERROR) +