diff options
Diffstat (limited to 'bitbake/lib/bb/msg.py')
| -rw-r--r-- | bitbake/lib/bb/msg.py | 108 |
1 files changed, 62 insertions, 46 deletions
diff --git a/bitbake/lib/bb/msg.py b/bitbake/lib/bb/msg.py index 3fcf7091be..cea5efb5a4 100644 --- a/bitbake/lib/bb/msg.py +++ b/bitbake/lib/bb/msg.py | |||
| @@ -22,26 +22,32 @@ Message handling infrastructure for bitbake | |||
| 22 | # with this program; if not, write to the Free Software Foundation, Inc., | 22 | # with this program; if not, write to the Free Software Foundation, Inc., |
| 23 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | 23 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| 24 | 24 | ||
| 25 | import sys, bb | 25 | import sys |
| 26 | from bb import event | 26 | import collections |
| 27 | 27 | import bb | |
| 28 | debug_level = {} | 28 | import bb.event |
| 29 | 29 | ||
| 30 | debug_level = collections.defaultdict(lambda: 0) | ||
| 30 | verbose = False | 31 | verbose = False |
| 31 | 32 | ||
| 32 | domain = bb.utils.Enum( | 33 | def _NamedTuple(name, fields): |
| 33 | 'Build', | 34 | Tuple = collections.namedtuple(name, " ".join(fields)) |
| 34 | 'Cache', | 35 | return Tuple(*range(len(fields))) |
| 35 | 'Collection', | 36 | |
| 36 | 'Data', | 37 | domain = _NamedTuple("Domain", ( |
| 37 | 'Depends', | 38 | "Default", |
| 38 | 'Fetcher', | 39 | "Build", |
| 39 | 'Parsing', | 40 | "Cache", |
| 40 | 'PersistData', | 41 | "Collection", |
| 41 | 'Provider', | 42 | "Data", |
| 42 | 'RunQueue', | 43 | "Depends", |
| 43 | 'TaskData', | 44 | "Fetcher", |
| 44 | 'Util') | 45 | "Parsing", |
| 46 | "PersistData", | ||
| 47 | "Provider", | ||
| 48 | "RunQueue", | ||
| 49 | "TaskData", | ||
| 50 | "Util")) | ||
| 45 | 51 | ||
| 46 | 52 | ||
| 47 | class MsgBase(bb.event.Event): | 53 | class MsgBase(bb.event.Event): |
| @@ -49,7 +55,7 @@ class MsgBase(bb.event.Event): | |||
| 49 | 55 | ||
| 50 | def __init__(self, msg): | 56 | def __init__(self, msg): |
| 51 | self._message = msg | 57 | self._message = msg |
| 52 | event.Event.__init__(self) | 58 | bb.event.Event.__init__(self) |
| 53 | 59 | ||
| 54 | class MsgDebug(MsgBase): | 60 | class MsgDebug(MsgBase): |
| 55 | """Debug Message""" | 61 | """Debug Message""" |
| @@ -74,52 +80,62 @@ class MsgPlain(MsgBase): | |||
| 74 | # | 80 | # |
| 75 | 81 | ||
| 76 | def set_debug_level(level): | 82 | def set_debug_level(level): |
| 77 | bb.msg.debug_level = {} | 83 | for d in domain: |
| 78 | for domain in bb.msg.domain: | 84 | debug_level[d] = level |
| 79 | bb.msg.debug_level[domain] = level | 85 | debug_level[domain.Default] = level |
| 80 | bb.msg.debug_level['default'] = level | 86 | |
| 87 | def get_debug_level(msgdomain = domain.Default): | ||
| 88 | return debug_level[msgdomain] | ||
| 81 | 89 | ||
| 82 | def set_verbose(level): | 90 | def set_verbose(level): |
| 83 | bb.msg.verbose = level | 91 | verbose = level |
| 84 | 92 | ||
| 85 | def set_debug_domains(domains): | 93 | def set_debug_domains(strdomains): |
| 86 | for domain in domains: | 94 | for domainstr in strdomains: |
| 87 | found = False | 95 | for d in domain: |
| 88 | for ddomain in bb.msg.domain: | 96 | if domain._fields[d] == domainstr: |
| 89 | if domain == str(ddomain): | 97 | debug_level[d] += 1 |
| 90 | bb.msg.debug_level[ddomain] = bb.msg.debug_level[ddomain] + 1 | 98 | break |
| 91 | found = True | 99 | else: |
| 92 | if not found: | 100 | warn(None, "Logging domain %s is not valid, ignoring" % domainstr) |
| 93 | bb.msg.warn(None, "Logging domain %s is not valid, ignoring" % domain) | ||
| 94 | 101 | ||
| 95 | # | 102 | # |
| 96 | # Message handling functions | 103 | # Message handling functions |
| 97 | # | 104 | # |
| 98 | 105 | ||
| 99 | def debug(level, domain, msg, fn = None): | 106 | def debug(level, msgdomain, msg, fn = None): |
| 100 | if not domain: | 107 | if not msgdomain: |
| 101 | domain = 'default' | 108 | msgdomain = domain.Default |
| 102 | if debug_level[domain] >= level: | 109 | |
| 110 | if debug_level[msgdomain] >= level: | ||
| 103 | bb.event.fire(MsgDebug(msg), None) | 111 | bb.event.fire(MsgDebug(msg), None) |
| 112 | if not bb.event._ui_handlers: | ||
| 113 | print('DEBUG: ' + msg) | ||
| 114 | |||
| 115 | def note(level, msgdomain, msg, fn = None): | ||
| 116 | if not msgdomain: | ||
| 117 | msgdomain = domain.Default | ||
| 104 | 118 | ||
| 105 | def note(level, domain, msg, fn = None): | 119 | if level == 1 or verbose or debug_level[msgdomain] >= 1: |
| 106 | if not domain: | ||
| 107 | domain = 'default' | ||
| 108 | if level == 1 or verbose or debug_level[domain] >= 1: | ||
| 109 | bb.event.fire(MsgNote(msg), None) | 120 | bb.event.fire(MsgNote(msg), None) |
| 121 | if not bb.event._ui_handlers: | ||
| 122 | print('NOTE: ' + msg) | ||
| 110 | 123 | ||
| 111 | def warn(domain, msg, fn = None): | 124 | def warn(msgdomain, msg, fn = None): |
| 112 | bb.event.fire(MsgWarn(msg), None) | 125 | bb.event.fire(MsgWarn(msg), None) |
| 126 | if not bb.event._ui_handlers: | ||
| 127 | print('WARNING: ' + msg) | ||
| 113 | 128 | ||
| 114 | def error(domain, msg, fn = None): | 129 | def error(msgdomain, msg, fn = None): |
| 115 | bb.event.fire(MsgError(msg), None) | 130 | bb.event.fire(MsgError(msg), None) |
| 116 | print 'ERROR: ' + msg | 131 | print 'ERROR: ' + msg |
| 117 | 132 | ||
| 118 | def fatal(domain, msg, fn = None): | 133 | def fatal(msgdomain, msg, fn = None): |
| 119 | bb.event.fire(MsgFatal(msg), None) | 134 | bb.event.fire(MsgFatal(msg), None) |
| 120 | print 'FATAL: ' + msg | 135 | print('FATAL: ' + msg) |
| 121 | sys.exit(1) | 136 | sys.exit(1) |
| 122 | 137 | ||
| 123 | def plain(msg, fn = None): | 138 | def plain(msg, fn = None): |
| 124 | bb.event.fire(MsgPlain(msg), None) | 139 | bb.event.fire(MsgPlain(msg), None) |
| 125 | 140 | if not bb.event._ui_handlers: | |
| 141 | print(msg) | ||
