| Submitter | Saul Wold |
|---|---|
| Date | April 27, 2011, 7:29 a.m. |
| Message ID | <a34718a02b76e37c59ff67d9e182bd7b64c9f125.1303889119.git.sgw@linux.intel.com> |
| Download | mbox | patch |
| Permalink | /patch/2963/ |
| State | New, archived |
| Headers | show |
Comments
Hi Darren, On Wed, 2011-04-27 at 00:29 -0700, Saul Wold wrote: > The following logging mechanisms are to be used in bash functions of recipes. > They are intended to map one to one in intention and output format with the > python recipe logging functions of a similar naming convention: bb.plain(), > bb.note(), etc. > > For the time being, all of these print only to the task logs. Future > enhancements may integrate these calls with the bitbake logging infrastructure, > allowing for printing to the console as appropriate. The interface and intention > statements reflect that future goal. Once it is in place, no changes will be > necessary to recipes using these logging mechanisms. This looks good but could you do a search and replace of any existing users of the oe* functions and then remove them from base.bbclass please? At the very least they should be calling the bb* equivalents. I'd like to clean up this kind of thing as we go. Cheers, Richard
On 04/28/2011 02:05 AM, Richard Purdie wrote: > Hi Darren, > > On Wed, 2011-04-27 at 00:29 -0700, Saul Wold wrote: >> The following logging mechanisms are to be used in bash functions of recipes. >> They are intended to map one to one in intention and output format with the >> python recipe logging functions of a similar naming convention: bb.plain(), >> bb.note(), etc. >> >> For the time being, all of these print only to the task logs. Future >> enhancements may integrate these calls with the bitbake logging infrastructure, >> allowing for printing to the console as appropriate. The interface and intention >> statements reflect that future goal. Once it is in place, no changes will be >> necessary to recipes using these logging mechanisms. > > This looks good but could you do a search and replace of any existing > users of the oe* functions and then remove them from base.bbclass > please? At the very least they should be calling the bb* equivalents. > I'd like to clean up this kind of thing as we go. Sure thing. Is a follow-up patch acceptable or do you want me to resubmit these in one series? -- Darren > > Cheers, > > Richard > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
On 04/28/2011 09:30 PM, Darren Hart wrote: > > > On 04/28/2011 02:05 AM, Richard Purdie wrote: >> Hi Darren, >> >> On Wed, 2011-04-27 at 00:29 -0700, Saul Wold wrote: >>> The following logging mechanisms are to be used in bash functions of recipes. >>> They are intended to map one to one in intention and output format with the >>> python recipe logging functions of a similar naming convention: bb.plain(), >>> bb.note(), etc. >>> >>> For the time being, all of these print only to the task logs. Future >>> enhancements may integrate these calls with the bitbake logging infrastructure, >>> allowing for printing to the console as appropriate. The interface and intention >>> statements reflect that future goal. Once it is in place, no changes will be >>> necessary to recipes using these logging mechanisms. >> >> This looks good but could you do a search and replace of any existing >> users of the oe* functions and then remove them from base.bbclass >> please? At the very least they should be calling the bb* equivalents. >> I'd like to clean up this kind of thing as we go. > > Sure thing. Is a follow-up patch acceptable or do you want me to > resubmit these in one series? > Since we have pulled this set, a follow-up patch would be most excellent! Thanks Sau! > -- > Darren > >> >> Cheers, >> >> Richard >> >> >> >> _______________________________________________ >> Openembedded-core mailing list >> Openembedded-core@lists.openembedded.org >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core >
Patch
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 7ca396d..eafad7e 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -8,6 +8,7 @@ inherit utils inherit utility-tasks inherit metadata_scm inherit buildstats +inherit logging python sys_path_eh () { if isinstance(e, bb.event.ConfigParsed): diff --git a/meta/classes/logging.bbclass b/meta/classes/logging.bbclass new file mode 100644 index 0000000..78d65bd --- /dev/null +++ b/meta/classes/logging.bbclass @@ -0,0 +1,72 @@ +# The following logging mechanisms are to be used in bash functions of recipes. +# They are intended to map one to one in intention and output format with the +# python recipe logging functions of a similar naming convention: bb.plain(), +# bb.note(), etc. +# +# For the time being, all of these print only to the task logs. Future +# enhancements may integrate these calls with the bitbake logging +# infrastructure, allowing for printing to the console as appropriate. The +# interface and intention statements reflect that future goal. Once it is +# in place, no changes will be necessary to recipes using these logging +# mechanisms. + +# Print the output exactly as it is passed in. Typically used for output of +# tasks that should be seen on the console. Use sparingly. +# Output: logs console +# NOTE: console output is not currently implemented. +bbplain() { + echo "$*" +} + +# Notify the user of a noteworthy condition. +# Output: logs console +# NOTE: console output is not currently implemented. +bbnote() { + echo "NOTE: $*" +} + +# Print a warning to the log. Warnings are non-fatal, and do not +# indicate a build failure. +# Output: logs +bbwarn() { + echo "WARNING: $*" +} + +# Print an error to the log. Errors are non-fatal in that the build can +# continue, but they do indicate a build failure. +# Output: logs +bberror() { + echo "ERROR: $*" +} + +# Print a fatal error to the log. Fatal errors indicate build failure +# and halt the build, exiting with an error code. +# Output: logs +bbfatal() { + echo "ERROR: $*" + exit 1 +} + +# Print debug messages. These are appropriate for progress checkpoint +# messages to the logs. Depending on the debug log level, they may also +# go to the console. +# Output: logs console +# Usage: bbdebug 1 "first level debug message" +# bbdebug 2 "second level debug message" +# NOTE: console output is not currently implemented. +bbdebug() { + USAGE='Usage: bbdebug [123] "message"' + if [ $# -lt 2 ]; then + bbfatal "$USAGE" + fi + + # Strip off the debug level and ensure it is an integer + DBGLVL=$1; shift + if ! [[ "$DBGLVL" =~ ^[0-9]+ ]]; then + bbfatal "$USAGE" + fi + + # All debug output is printed to the logs + echo "DEBUG: $*" +} +