Refactor log system
[platform/core/security/cert-svc.git] / vcore / src / dpl / log / include / dpl / log / dlog_log_provider.h
index 263d1e3..5f96eb5 100644 (file)
 #define DPL_DLOG_LOG_PROVIDER_H
 
 #include <dpl/log/abstract_log_provider.h>
-#include <dpl/scoped_free.h>
-#include <string>
+#include <memory>
 
 namespace VcoreDPL {
 namespace Log {
-class DLOGLogProvider :
-    public AbstractLogProvider
+class DLOGLogProvider : public AbstractLogProvider
 {
-  private:
-    VcoreDPL::ScopedFree<char> m_tag;
-
-    static std::string FormatMessage(const char *message,
-                                     const char *filename,
-                                     int line,
-                                     const char *function);
-
-  public:
+public:
     DLOGLogProvider();
     virtual ~DLOGLogProvider();
 
-    virtual void Debug(const char *message,
-                       const char *fileName,
-                       int line,
-                       const char *function);
-    virtual void Info(const char *message,
-                      const char *fileName,
-                      int line,
-                      const char *function);
-    virtual void Warning(const char *message,
-                         const char *fileName,
-                         int line,
-                         const char *function);
-    virtual void Error(const char *message,
-                       const char *fileName,
-                       int line,
-                       const char *function);
-    virtual void Pedantic(const char *message,
-                          const char *fileName,
-                          int line,
-                          const char *function);
+    virtual void Log(AbstractLogProvider::LogLevel level,
+                     const char *message,
+                     const char *fileName,
+                     int line,
+                     const char *function) const;
 
     // Set global Tag according to DLOG
-    void SetTag(const char *tag);
+    virtual void SetTag(const char *tag);
+
+private:
+    std::unique_ptr<char[]> m_tag;
+
 };
 }
 } // namespace VcoreDPL