mirror of
https://github.com/gabime/spdlog.git
synced 2025-03-14 10:09:54 +08:00
Merge pull request #263 from jan-dx/master
Add support for Solaris operating system
This commit is contained in:
commit
c68a0de2b6
@ -108,7 +108,7 @@ void async_example()
|
|||||||
//syslog example (linux/osx/freebsd)
|
//syslog example (linux/osx/freebsd)
|
||||||
void syslog_example()
|
void syslog_example()
|
||||||
{
|
{
|
||||||
#if defined (__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
|
#ifdef SPDLOG_ENABLE_SYSLOG
|
||||||
std::string ident = "spdlog-example";
|
std::string ident = "spdlog-example";
|
||||||
auto syslog_logger = spd::syslog_logger("syslog", ident, LOG_PID);
|
auto syslog_logger = spd::syslog_logger("syslog", ident, LOG_PID);
|
||||||
syslog_logger->warn("This is warning that will end up in syslog.");
|
syslog_logger->warn("This is warning that will end up in syslog.");
|
||||||
|
@ -37,6 +37,16 @@
|
|||||||
#define DEPRECATED
|
#define DEPRECATED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <spdlog/tweakme.h>
|
||||||
|
|
||||||
|
#ifndef SPDLOG_ENABLE_SYSLOG
|
||||||
|
#if defined (__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
|
||||||
|
#define SPDLOG_ENABLE_SYSLOG
|
||||||
|
#elif defined(sun) || defined(__sun)
|
||||||
|
#define SPDLOG_ENABLE_SYSLOG
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include <spdlog/fmt/fmt.h>
|
#include <spdlog/fmt/fmt.h>
|
||||||
|
|
||||||
|
@ -250,7 +250,42 @@ inline int utc_minutes_offset(const std::tm& tm = details::os::localtime())
|
|||||||
offset -= tzinfo.StandardBias;
|
offset -= tzinfo.StandardBias;
|
||||||
return offset;
|
return offset;
|
||||||
#else
|
#else
|
||||||
return static_cast<int>(tm.tm_gmtoff / 60);
|
long int offset_seconds;
|
||||||
|
|
||||||
|
#if defined(sun) || defined(__sun)
|
||||||
|
// 'tm_gmtoff' field is BSD extension and it's missing on SunOS/Solaris
|
||||||
|
struct helper {
|
||||||
|
static long int calculate_gmt_offset(const std::tm & localtm = details::os::localtime(), const std::tm & gmtm = details::os::gmtime()) {
|
||||||
|
int local_year = localtm.tm_year + (1900 - 1);
|
||||||
|
int gmt_year = gmtm.tm_year + (1900 - 1);
|
||||||
|
|
||||||
|
long int days = (
|
||||||
|
// difference in day of year
|
||||||
|
localtm.tm_yday - gmtm.tm_yday
|
||||||
|
|
||||||
|
// + intervening leap days
|
||||||
|
+ ((local_year >> 2) - (gmt_year >> 2))
|
||||||
|
- (local_year / 100 - gmt_year / 100)
|
||||||
|
+ ((local_year / 100 >> 2) - (gmt_year / 100 >> 2))
|
||||||
|
|
||||||
|
// + difference in years * 365 */
|
||||||
|
+ (long int)(local_year - gmt_year) * 365
|
||||||
|
);
|
||||||
|
|
||||||
|
long int hours = (24 * days) + (localtm.tm_hour - gmtm.tm_hour);
|
||||||
|
long int mins = (60 * hours) + (localtm.tm_min - gmtm.tm_min);
|
||||||
|
long int secs = (60 * mins) + (localtm.tm_sec - gmtm.tm_sec);
|
||||||
|
|
||||||
|
return secs;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
offset_seconds = helper::calculate_gmt_offset(tm);
|
||||||
|
#else
|
||||||
|
offset_seconds = tm.tm_gmtoff;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return static_cast<int>(offset_seconds / 60);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ inline std::shared_ptr<spdlog::logger> spdlog::stderr_logger_st(const std::strin
|
|||||||
return create_console_logger(logger_name, sinks::stderr_sink_st::instance(), color);
|
return create_console_logger(logger_name, sinks::stderr_sink_st::instance(), color);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
|
#ifdef SPDLOG_ENABLE_SYSLOG
|
||||||
// Create syslog logger
|
// Create syslog logger
|
||||||
inline std::shared_ptr<spdlog::logger> spdlog::syslog_logger(const std::string& logger_name, const std::string& syslog_ident, int syslog_option)
|
inline std::shared_ptr<spdlog::logger> spdlog::syslog_logger(const std::string& logger_name, const std::string& syslog_ident, int syslog_option)
|
||||||
{
|
{
|
||||||
|
@ -5,10 +5,11 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
|
#include <spdlog/common.h>
|
||||||
|
|
||||||
|
#ifdef SPDLOG_ENABLE_SYSLOG
|
||||||
|
|
||||||
#include <spdlog/sinks/sink.h>
|
#include <spdlog/sinks/sink.h>
|
||||||
#include <spdlog/common.h>
|
|
||||||
#include <spdlog/details/log_msg.h>
|
#include <spdlog/details/log_msg.h>
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
@ -98,7 +98,7 @@ std::shared_ptr<logger> stderr_logger_st(const std::string& logger_name, bool co
|
|||||||
//
|
//
|
||||||
// Create and register a syslog logger
|
// Create and register a syslog logger
|
||||||
//
|
//
|
||||||
#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
|
#ifdef SPDLOG_ENABLE_SYSLOG
|
||||||
std::shared_ptr<logger> syslog_logger(const std::string& logger_name, const std::string& ident = "", int syslog_option = 0);
|
std::shared_ptr<logger> syslog_logger(const std::string& logger_name, const std::string& ident = "", int syslog_option = 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -11,6 +11,14 @@
|
|||||||
//
|
//
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// By default, syslog sink is only enabled on tested operating systems.
|
||||||
|
// Uncomment to enable it unconditionally.
|
||||||
|
//
|
||||||
|
// #define SPDLOG_ENABLE_SYSLOG
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Under Linux, the much faster CLOCK_REALTIME_COARSE clock can be used.
|
// Under Linux, the much faster CLOCK_REALTIME_COARSE clock can be used.
|
||||||
// This clock is less accurate - can be off by dozens of millis - depending on the kernel HZ.
|
// This clock is less accurate - can be off by dozens of millis - depending on the kernel HZ.
|
||||||
|
Loading…
Reference in New Issue
Block a user