diff --git a/src/logger.cpp b/src/logger.cpp
index ddf04448f7c6825e25a945b8705e6d19d3a148bb..d886aaa794ff6bfa9b394f468b3f52585b8f02d8 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -177,9 +177,8 @@ vlogger(const int level, const char *format, va_list ap)
         vfprintf(stderr, format, ap);
 
 #ifndef _WIN32
-        fputs(END_COLOR"\n", stderr);
+        fputs(END_COLOR, stderr);
 #else
-        fputs("\n", stderr);
         SetConsoleTextAttribute(hConsole, saved_attributes);
 #endif
 
diff --git a/src/logger.h b/src/logger.h
index fa09ae081189d0b220617fc5c22484c0db2306d7..d98133ae00661ba0e1de6f8287b81584cab635e3 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -64,6 +64,9 @@ void strErr();
 #define STR(EXP) #EXP
 #define XSTR(X) STR(X)
 
+// Line return char in a string
+#define ENDL "\n"
+
 // Do not remove the "| " in following without modifying vlogger() code
 #define LOG_FORMAT(M, ...) FILE_NAME ":" XSTR(__LINE__) "| " M, ##__VA_ARGS__
 
@@ -112,10 +115,15 @@ void strErr();
 
 #endif /* __ANDROID__ _WIN32 */
 
-#define RING_ERR(M, ...)   LOGGER(M, LOG_ERR, ##__VA_ARGS__)
-#define RING_WARN(M, ...)  LOGGER(M, LOG_WARNING, ##__VA_ARGS__)
-#define RING_INFO(M, ...)  LOGGER(M, LOG_INFO, ##__VA_ARGS__)
-#define RING_DBG(M, ...)   LOGGER(M, LOG_DEBUG, ##__VA_ARGS__)
+#define RING_ERR(M, ...)   LOGGER(M ENDL, LOG_ERR, ##__VA_ARGS__)
+#define RING_WARN(M, ...)  LOGGER(M ENDL, LOG_WARNING, ##__VA_ARGS__)
+#define RING_INFO(M, ...)  LOGGER(M ENDL, LOG_INFO, ##__VA_ARGS__)
+#define RING_DBG(M, ...)   LOGGER(M ENDL, LOG_DEBUG, ##__VA_ARGS__)
+
+#define RING_XERR(M, ...)   LOGGER(M, LOG_ERR, ##__VA_ARGS__)
+#define RING_XWARN(M, ...)  LOGGER(M, LOG_WARNING, ##__VA_ARGS__)
+#define RING_XINFO(M, ...)  LOGGER(M, LOG_INFO, ##__VA_ARGS__)
+#define RING_XDBG(M, ...)   LOGGER(M, LOG_DEBUG, ##__VA_ARGS__)
 
 #ifdef __cplusplus
 }