diff options
author | Kevin Rocard <kevinx.rocard@intel.com> | 2013-02-04 14:57:47 +0100 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-12 17:03:46 +0100 |
commit | 3629936c927edb75d2529ff82395f735375d4650 (patch) | |
tree | 633925eb1d0ba622aea4a533021674830841e5e5 | |
parent | 22a6cef89ab708fff985ded34031a5d48fbd5236 (diff) | |
download | external_parameter-framework-3629936c927edb75d2529ff82395f735375d4650.zip external_parameter-framework-3629936c927edb75d2529ff82395f735375d4650.tar.gz external_parameter-framework-3629936c927edb75d2529ff82395f735375d4650.tar.bz2 |
PFW: Correct truncated criterion log
BZ: 85746
Create a log fonction to log a string table. Use it to call the log
function for each criterion.
Context:
When the PFW starts, it logs the criteria, their states and possible
values. All criterion logs where concatenate in a string and logged.
But if there is a lot of criteria, the 512 chars long log buffer might
be overfload and the log is truncated.
Change-Id: I72c89b25de9314b714763b3ac71a7d0cb9698910
Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
Reviewed-on: http://android.intel.com:8080/90089
Reviewed-by: Gonzalve, Sebastien <sebastien.gonzalve@intel.com>
Tested-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
-rw-r--r-- | parameter/Element.cpp | 13 | ||||
-rw-r--r-- | parameter/Element.h | 2 | ||||
-rw-r--r-- | parameter/ParameterMgr.cpp | 5 |
3 files changed, 16 insertions, 4 deletions
diff --git a/parameter/Element.cpp b/parameter/Element.cpp index 06c3df2..a96c683 100644 --- a/parameter/Element.cpp +++ b/parameter/Element.cpp @@ -69,6 +69,19 @@ void CElement::log_warning(const string& strMessage, ...) const doLog(true, acBuffer); } +// Log each element of the string list +void CElement::log_table(bool bIsWarning, const list<string> lstrMessage) const +{ + list<string>::const_iterator iterator(lstrMessage.begin()); + list<string>::const_iterator end(lstrMessage.end()); + + while (iterator != end) { + // Log current list element + doLog(bIsWarning, iterator->c_str()); + ++iterator; + } +} + void CElement::doLog(bool bIsWarning, const string& strLog) const { assert(_pParent); diff --git a/parameter/Element.h b/parameter/Element.h index d870145..b381898 100644 --- a/parameter/Element.h +++ b/parameter/Element.h @@ -27,6 +27,7 @@ #include <string> #include <vector> #include <stdint.h> +#include <list> #include "XmlSink.h" #include "XmlSource.h" @@ -47,6 +48,7 @@ public: // Logging void log_info(const string& strMessage, ...) const; void log_warning(const string& strMessage, ...) const; + void log_table(bool bIsWarning, const list<string> lstrMessage) const; // Description void setDescription(const string& strDescription); diff --git a/parameter/ParameterMgr.cpp b/parameter/ParameterMgr.cpp index 90d7884..b5b9683 100644 --- a/parameter/ParameterMgr.cpp +++ b/parameter/ParameterMgr.cpp @@ -358,10 +358,7 @@ bool CParameterMgr::load(string& strError) list<string> lstrSelectionCriteron; selectionCriteria->listSelectionCriteria(lstrSelectionCriteron, true, false); - string strSelectionCriteron; - CUtility::concatenate(lstrSelectionCriteron, strSelectionCriteron); - - log_info("%s", strSelectionCriteron.c_str()); + log_table(false, lstrSelectionCriteron); } // At initialization, check subsystems that need resync |