No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

51 líneas
1.0 KiB

  1. #pragma once
  2. #include <cxxabi.h>
  3. #include "logger.h"
  4. namespace cpplogging
  5. {
  6. namespace __impl
  7. {
  8. /* log_helper */
  9. log_helper
  10. ::log_helper(cpplogging::logger& p_logger)
  11. : logger (p_logger)
  12. , entry (new log_entry())
  13. { entry->name = p_logger.name(); }
  14. log_helper
  15. ::log_helper(cpplogging::logger& p_logger, const log_entry_ptr_s& p_entry)
  16. : logger (p_logger)
  17. , entry (p_entry)
  18. { entry->name = p_logger.name(); }
  19. log_helper
  20. ::~log_helper()
  21. {
  22. entry->message += str();
  23. if (entry.use_count() == 1)
  24. logger.write_entry(entry);
  25. }
  26. }
  27. /* logger */
  28. logger
  29. ::logger(const std::string name)
  30. : _name(name)
  31. { }
  32. const std::string& logger
  33. ::name() const
  34. { return _name; }
  35. __impl::log_helper logger
  36. ::log()
  37. { return __impl::log_helper(*this); }
  38. }