binman: Allow for logging information to be displayed
authorSimon Glass <sjg@chromium.org>
Mon, 8 Jul 2019 20:25:49 +0000 (14:25 -0600)
committerSimon Glass <sjg@chromium.org>
Wed, 24 Jul 2019 19:54:08 +0000 (12:54 -0700)
Binman generally operates silently but in some cases it is useful to see
what Binman is actually doing at each step. Enable some logging output
with different logging levels selectable via the -v flag.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/binman/README
tools/binman/entry.py
tools/binman/image.py
tools/patman/tout.py

index 146e0fd470af71d41c7662090ab68c4cf2a29a95..1655a9d50df11240410ccc208c2b93477ef54747 100644 (file)
@@ -533,6 +533,24 @@ or with wildcards:
       image-header          bf8     8  image-header     bf8
 
 
+Logging
+-------
+
+Binman normally operates silently unless there is an error, in which case it
+just displays the error. The -D/--debug option can be used to create a full
+backtrace when errors occur.
+
+Internally binman logs some output while it is running. This can be displayed
+by increasing the -v/--verbosity from the default of 1:
+
+   0: silent
+   1: warnings only
+   2: notices (important messages)
+   3: info about major operations
+   4: detailed information about each operation
+   5: debug (all output)
+
+
 Hashing Entries
 ---------------
 
@@ -868,7 +886,6 @@ Some ideas:
 - Add an option to decode an image into the constituent binaries
 - Support building an image for a board (-b) more completely, with a
   configurable build directory
-- Support logging of binman's operations, with different levels of verbosity
 - Support updating binaries in an image (with no size change / repacking)
 - Support updating binaries in an image (with repacking)
 - Support adding FITs to an image
index c45a2fdb4b09829dd835cf6daec9fb0429586f06..33d3f1e4d42949fb59c8c0e2b9163ee236ac2f36 100644 (file)
@@ -23,6 +23,7 @@ import sys
 import fdt_util
 import state
 import tools
+import tout
 
 modules = {}
 
@@ -272,7 +273,7 @@ class Entry(object):
         new_size = len(data)
         if state.AllowEntryExpansion():
             if new_size > self.contents_size:
-                print("Entry '%s' size change from %#x to %#x" % (
+                tout.Debug("Entry '%s' size change from %#x to %#x" % (
                     self._node.path, self.contents_size, new_size))
                 # self.data will indicate the new size needed
                 size_ok = False
index 2c5668e2a96c1cfe8c5f98afce6063d31755f85e..bbb5e23c3b237b0b45b8976d18cb7e9b0ee7d16f 100644 (file)
@@ -20,6 +20,7 @@ from etype import section
 import fdt
 import fdt_util
 import tools
+import tout
 
 class Image(section.Entry_section):
     """A Image, representing an output from binman
@@ -107,7 +108,7 @@ class Image(section.Entry_section):
         for entry in self._entries.values():
             if not entry.ProcessContents():
                 sizes_ok = False
-                print("Entry '%s' size change" % self._node.path)
+                tout.Debug("Entry '%s' size change" % self._node.path)
         return sizes_ok
 
     def WriteSymbols(self):
index 4957c7ae1df1ed645303e51382769d5efcead970..15acce28cb98c59bda37b7cc82a54879ec7330ec 100644 (file)
@@ -131,13 +131,21 @@ def Info(msg):
     """
     _Output(3, msg)
 
+def Detail(msg):
+    """Display a detailed message
+
+    Args:
+        msg; Message to display.
+    """
+    _Output(4, msg)
+
 def Debug(msg):
     """Display a debug message
 
     Args:
         msg; Message to display.
     """
-    _Output(4, msg)
+    _Output(5, msg)
 
 def UserOutput(msg):
     """Display a message regardless of the current output level.