Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syslog dependency fails on windows builds #9

Closed
mintyc opened this issue Nov 12, 2014 · 2 comments
Closed

Syslog dependency fails on windows builds #9

mintyc opened this issue Nov 12, 2014 · 2 comments

Comments

@mintyc
Copy link

mintyc commented Nov 12, 2014

Compiling examples on mingw
cd example
make --makefile=Makefile.mingw all

Fails due to an missing syslog sink on windows

Quick fix: Wrap function include/spdlog/details/spdlog_impl.h:88

#ifdef __linux__
// Create syslog logger
inline std::shared_ptr<spdlog::logger> spdlog::syslog_logger(const std::string& logger_name)
{
    return create<spdlog::sinks::syslog_sink>(logger_name);
}
#endif

Or create dummy windows impl in syslog_sink.h - skip syslog.h include and make log function empty on windows?

@mintyc
Copy link
Author

mintyc commented Nov 12, 2014

I'm new to git, but I've sent a git pull request with this change (and another to allow build/run for bench)

Dummy implementation - does nothing
Remove the #ifdef linux elsewhere and add a dummy impl in syslog_sink.h

git diff 'patch'

diff --git a/include/spdlog/sinks/syslog_sink.h b/include/spdlog/sinks/syslog_sink.h
index 1d7c28d..d5a20ec 100644
--- a/include/spdlog/sinks/syslog_sink.h
+++ b/include/spdlog/sinks/syslog_sink.h
@@ -24,10 +24,20 @@

 #pragma once

-#ifdef __linux__
-
 #include <string>
+#ifdef __linux__
 #include <syslog.h>
+#else
+   inline void syslog(int /*prio*/, const char */*fmt*/, ...) {}   // TODO Windows Syslog not supported
+   #define LOG_EMERG       0       /* system is unusable */
+   #define LOG_ALERT       1       /* action must be taken immediately */
+   #define LOG_CRIT        2       /* critical conditions */
+   #define LOG_ERR         3       /* error conditions */
+   #define LOG_WARNING     4       /* warning conditions */
+   #define LOG_NOTICE      5       /* normal but significant condition */
+   #define LOG_INFO        6       /* informational */
+   #define LOG_DEBUG       7       /* debug-level messages */
+#endif
 #include "./sink.h"
 #include "../common.h"
 #include "../details/log_msg.h"
@@ -84,5 +94,3 @@ namespace spdlog
     };
   }
 }
-
-#endif
diff --git a/include/spdlog/spdlog.h b/include/spdlog/spdlog.h
index 42bff20..636dbeb 100644
--- a/include/spdlog/spdlog.h
+++ b/include/spdlog/spdlog.h
@@ -69,9 +69,7 @@ std::shared_ptr<logger> stderr_logger_st(const std::string& logger_name);


 // Create a syslog logger
-#ifdef __linux__
  std::shared_ptr<logger> syslog_logger(const std::string& logger_name);
-#endif


 //

@gabime
Copy link
Owner

gabime commented Nov 12, 2014

Fix in commit 1008f56

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants