诸暨麻将添加redis
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

77 linhas
2.1 KiB

  1. // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
  2. // Distributed under the MIT License (http://opensource.org/licenses/MIT)
  3. #pragma once
  4. #include <spdlog/details/console_globals.h>
  5. #include <spdlog/details/synchronous_factory.h>
  6. #include <spdlog/sinks/sink.h>
  7. #include <cstdio>
  8. namespace spdlog {
  9. namespace sinks {
  10. template<typename ConsoleMutex>
  11. class stdout_sink_base : public sink
  12. {
  13. public:
  14. using mutex_t = typename ConsoleMutex::mutex_t;
  15. explicit stdout_sink_base(FILE *file);
  16. ~stdout_sink_base() override = default;
  17. stdout_sink_base(const stdout_sink_base &other) = delete;
  18. stdout_sink_base &operator=(const stdout_sink_base &other) = delete;
  19. void log(const details::log_msg &msg) override;
  20. void flush() override;
  21. void set_pattern(const std::string &pattern) override;
  22. void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override;
  23. protected:
  24. mutex_t &mutex_;
  25. FILE *file_;
  26. std::unique_ptr<spdlog::formatter> formatter_;
  27. };
  28. template<typename ConsoleMutex>
  29. class stdout_sink : public stdout_sink_base<ConsoleMutex>
  30. {
  31. public:
  32. stdout_sink();
  33. };
  34. template<typename ConsoleMutex>
  35. class stderr_sink : public stdout_sink_base<ConsoleMutex>
  36. {
  37. public:
  38. stderr_sink();
  39. };
  40. using stdout_sink_mt = stdout_sink<details::console_mutex>;
  41. using stdout_sink_st = stdout_sink<details::console_nullmutex>;
  42. using stderr_sink_mt = stderr_sink<details::console_mutex>;
  43. using stderr_sink_st = stderr_sink<details::console_nullmutex>;
  44. } // namespace sinks
  45. // factory methods
  46. template<typename Factory = spdlog::synchronous_factory>
  47. std::shared_ptr<logger> stdout_logger_mt(const std::string &logger_name);
  48. template<typename Factory = spdlog::synchronous_factory>
  49. std::shared_ptr<logger> stdout_logger_st(const std::string &logger_name);
  50. template<typename Factory = spdlog::synchronous_factory>
  51. std::shared_ptr<logger> stderr_logger_mt(const std::string &logger_name);
  52. template<typename Factory = spdlog::synchronous_factory>
  53. std::shared_ptr<logger> stderr_logger_st(const std::string &logger_name);
  54. } // namespace spdlog
  55. #ifdef SPDLOG_HEADER_ONLY
  56. #include "stdout_sinks-inl.h"
  57. #endif