diff --git a/README.md b/README.md
index c9db48b719b774cbb149fdd2aca9ab8807562037..575fc56f0c25554e44b61c674b218bbda72a078e 100644
--- a/README.md
+++ b/README.md
@@ -20,8 +20,19 @@ uspd requires a configuration file to provide more granular objects over ubus. G
 ````bash
 config uspd 'usp'
         option granularitylevel  '0'
+	option loglevel  '2'
 ````
 
+In the above uci, log_level can have below value:
+
+|log_level|  Meaning                                 |
+|---------| -----------------------------------------|
+|  0      | Uspd will not log anything               |
+|  1      | Only errors will be loged                |
+|  2      | Only errors and warnings will be loged   |
+|  3      | Log everything except debug              |
+|  4      | Everything will be loged                 |
+
 For more info on the UCI uspd configuration see [link](./docs/api/uci.uspd.md)
 
 ## Ubus API
diff --git a/docs/api/uci.uspd.md b/docs/api/uci.uspd.md
index 8891bd5afc19f86d06a62924374da48683526095..73b83b4f6c5a5d9b745170d7c91bf11056ade93a 100644
--- a/docs/api/uci.uspd.md
+++ b/docs/api/uci.uspd.md
@@ -1 +1 @@
-<tbody><tr><td colspan="2"><div style="font-weight: bold">uspd</div><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">section</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td><td><div style="font-weight: bold; font-size: 14px">multi</div></td><td><div style="font-weight: bold; font-size: 14px">options</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">uspd</div></td><td class="td_row_even"><div class="td_row_even">USP daemon Settings</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">granularitylevel</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Creates ubus objects along with object names, depth of object name depends on granularitylevel</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">loglevel</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Internal loglevel for debuging</div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody>
\ No newline at end of file
+<tbody><tr><td colspan="2"><div style="font-weight: bold">uspd</div><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">section</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td><td><div style="font-weight: bold; font-size: 14px">multi</div></td><td><div style="font-weight: bold; font-size: 14px">options</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">uspd</div></td><td class="td_row_even"><div class="td_row_even">USP daemon Settings</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">granularitylevel</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Creates ubus objects along with object names, depth of object name depends on granularitylevel</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">loglevel</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Internal loglevel for debugging {0: No Logs; 1: Errors only; 2: Errors and warnings; 3: Error, warning and info; 4: Everything}</div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody>
diff --git a/schemas/uci/uspd.json b/schemas/uci/uspd.json
index 7817c21466ee0bdd8dfb3ee7c40273f16b071af9..b46236655f6cb6f8d782a7fcfe28b25960cfafe7 100644
--- a/schemas/uci/uspd.json
+++ b/schemas/uci/uspd.json
@@ -17,7 +17,7 @@
           "type": "integer",
           "required": "no",
           "default": "1",
-          "description": "Internal loglevel for debuging"
+          "description": "Internal loglevel for debugging {0: No Logs; 1: Errors only; 2: Errors and warnings; 3: Error, warning and info; 4: Everything}"
         }
       ]
     }
diff --git a/src/common.c b/src/common.c
index f394c84d653e8e289c65fdd937ad586badeec828..97d6aac5003605c0ed053970f34f603719618a97 100644
--- a/src/common.c
+++ b/src/common.c
@@ -75,6 +75,10 @@ void print_error(const char *format, ...)
 {
 	va_list arglist;
 
+	if (gLogLevel < 1) {
+		return;
+	}
+
 	va_start( arglist, format );
 	vsyslog(LOG_ERR, format, arglist);
 	va_end( arglist );
@@ -85,7 +89,7 @@ void print_error(const char *format, ...)
 void print_warning(const char *format, ...)
 {
 	va_list arglist;
-	if (gLogLevel < 1) {
+	if (gLogLevel < 2) {
 		return;
 	}
 
@@ -98,7 +102,7 @@ void print_info(const char *format, ...)
 {
 	va_list arglist;
 
-	if (gLogLevel < 2) {
+	if (gLogLevel < 3) {
 		return;
 	}
 
@@ -111,7 +115,7 @@ void print_debug(const char *format, ...)
 {
 	va_list arglist;
 
-	if (gLogLevel < 3) {
+	if (gLogLevel < 4) {
 		return;
 	}