PFW: Improve login in PFW core and amixer plugin

BZ: 71914

Autolog adds a nesting log level. It is not always needed. For example in a
Debug context a lot of log can be expected, so this level is useful but not
otherwise.

Autolog nesting is now optional.
Add log during PFW structure loading.

Change-Id: I24e1f615e3032c70a3b8b85a1cc1804dc49b631c
Origin-Change-Id: I1f2c6c843e17595d4a81c1d2dfbff30d4187cdf8
Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
Reviewed-on: http://android.intel.com:8080/81269
Reviewed-by: Barthes, FabienX <fabienx.barthes@intel.com>
Tested-by: Barthes, FabienX <fabienx.barthes@intel.com>
Reviewed-by: cactus <cactus@intel.com>
Tested-by: cactus <cactus@intel.com>
diff --git a/parameter/XmlFileIncluderElement.cpp b/parameter/XmlFileIncluderElement.cpp
index 4986758..06f64ff 100644
--- a/parameter/XmlFileIncluderElement.cpp
+++ b/parameter/XmlFileIncluderElement.cpp
@@ -27,6 +27,7 @@
 #include "XmlMemoryDocSink.h"
 #include "XmlElementSerializingContext.h"
 #include "ElementLibrary.h"
+#include "AutoLog.h"
 #include <assert.h>
 
 #define base CKindElement
@@ -53,41 +54,45 @@
     // Instantiate parser
     string strIncludedElementType = getIncludedElementType();
 
-    // Use a doc source that load data from a file
-    CXmlFileDocSource fileDocSource(strPath, elementSerializingContext.getXmlSchemaPathFolder() + "/" + strIncludedElementType + ".xsd", strIncludedElementType);
+    {
+        // Open a log section titled with loading file path
+        CAutoLog autolog(this, "Loading " + strPath);
 
-    if (!fileDocSource.isParsable(elementSerializingContext)) {
+        // Use a doc source that load data from a file
+        CXmlFileDocSource fileDocSource(strPath, elementSerializingContext.getXmlSchemaPathFolder() + "/" + strIncludedElementType + ".xsd", strIncludedElementType);
 
-        return false;
+        if (!fileDocSource.isParsable(elementSerializingContext)) {
+
+            return false;
+        }
+
+        // Get top level element
+        CXmlElement childElement;
+
+        fileDocSource.getRootElement(childElement);
+
+        // Create child element
+        CElement* pChild = elementSerializingContext.getElementLibrary()->createElement(childElement);
+
+        if (pChild) {
+
+            // Store created child!
+            getParent()->addChild(pChild);
+        } else {
+
+            elementSerializingContext.setError("Unable to create XML element " + childElement.getPath());
+
+            return false;
+        }
+
+        // Use a doc sink that instantiate the structure from the doc source
+        CXmlMemoryDocSink memorySink(pChild);
+
+        if (!memorySink.process(fileDocSource, elementSerializingContext)) {
+
+            return false;
+        }
     }
-
-    // Get top level element
-    CXmlElement childElement;
-
-    fileDocSource.getRootElement(childElement);
-
-    // Create child element
-    CElement* pChild = elementSerializingContext.getElementLibrary()->createElement(childElement);
-
-    if (pChild) {
-
-        // Store created child!
-        getParent()->addChild(pChild);
-    } else {
-
-        elementSerializingContext.setError("Unable to create XML element " + childElement.getPath());
-
-        return false;
-    }
-
-    // Use a doc sink that instantiate the structure from the doc source
-    CXmlMemoryDocSink memorySink(pChild);
-
-    if (!memorySink.process(fileDocSource, elementSerializingContext)) {
-
-        return false;
-    }
-
     // Detach from parent
     getParent()->removeChild(this);