OSDN Git Service

three.jsをThirdPartyに追加
[webglgame/webgl_framework.git] / webglFramework / Thirdparty / three.js-master / utils / exporters / blender / addons / io_three / logger.py
1 import os
2 import logging
3 import tempfile
4
5 from . import constants
6
7 LOG_FILE = None
8 LOGGER = None
9
10 LEVELS = {
11     constants.DEBUG: logging.DEBUG,
12     constants.INFO: logging.INFO,
13     constants.WARNING: logging.WARNING,
14     constants.ERROR: logging.ERROR,
15     constants.CRITICAL: logging.CRITICAL
16 }
17
18
19 def init(filename, level=constants.DEBUG):
20     """Initialize the logger.
21
22     :param filename: base name of the log file
23     :param level: logging level (Default value = DEBUG)
24
25     """
26     global LOG_FILE
27     LOG_FILE = os.path.join(tempfile.gettempdir(), filename)
28     with open(LOG_FILE, 'w'):
29         pass
30
31     global LOGGER
32     LOGGER = logging.getLogger('Three.Export')
33     LOGGER.setLevel(LEVELS[level])
34
35     if not LOGGER.handlers:
36         stream = logging.StreamHandler()
37         stream.setLevel(LEVELS[level])
38
39         format_ = '%(asctime)s - %(name)s - %(levelname)s: %(message)s'
40         formatter = logging.Formatter(format_)
41
42         stream.setFormatter(formatter)
43
44         file_handler = logging.FileHandler(LOG_FILE)
45         file_handler.setLevel(LEVELS[level])
46         file_handler.setFormatter(formatter)
47
48         LOGGER.addHandler(stream)
49         LOGGER.addHandler(file_handler)
50
51
52 def _logger(func):
53
54     def inner(*args):
55         if LOGGER is not None:
56             func(*args)
57
58     return inner
59
60
61 @_logger
62 def info(*args):
63     LOGGER.info(*args)
64
65
66 @_logger
67 def debug(*args):
68     LOGGER.debug(*args)
69
70
71 @_logger
72 def warning(*args):
73     LOGGER.warning(*args)
74
75
76 @_logger
77 def error(*args):
78     LOGGER.error(*args)
79
80
81 @_logger
82 def critical(*args):
83     LOGGER.critical(*args)