You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.6KB

  1. //! Tools to record and display what's happening in your program
  2. //!
  3. #![feature(test)]
  4. #[macro_use] extern crate slog;
  5. #[allow(unused_imports)]
  6. #[macro_use] extern crate money;
  7. extern crate test;
  8. extern crate zmq;
  9. extern crate influent;
  10. extern crate chrono;
  11. extern crate hyper;
  12. extern crate termion;
  13. extern crate sloggers;
  14. extern crate slog_term;
  15. extern crate fnv;
  16. extern crate ordermap;
  17. extern crate decimal;
  18. extern crate uuid;
  19. extern crate hdrsample;
  20. extern crate windows;
  21. extern crate pubsub as pub_sub;
  22. use chrono::{DateTime, Utc};
  23. #[allow(unused_imports)]
  24. use sloggers::Build;
  25. #[allow(unused_imports)]
  26. pub use sloggers::types::Severity;
  27. use sloggers::types::TimeZone;
  28. #[allow(unused_imports)]
  29. use sloggers::file::FileLoggerBuilder;
  30. pub mod influx;
  31. pub mod warnings;
  32. pub mod latency;
  33. pub mod hist;
  34. /// converts a chrono::DateTime to an integer timestamp (ns)
  35. ///
  36. pub fn nanos(t: DateTime<Utc>) -> u64 {
  37. (t.timestamp() as u64) * 1_000_000_000_u64 + (t.timestamp_subsec_nanos() as u64)
  38. }
  39. #[cfg(not(any(test, feature = "test")))]
  40. pub fn file_logger(path: &str, level: Severity) -> slog::Logger {
  41. let mut builder = FileLoggerBuilder::new(path);
  42. builder.level(level);
  43. builder.timezone(TimeZone::Utc);
  44. builder.build().unwrap()
  45. }
  46. #[cfg(any(test, feature = "test"))]
  47. pub fn file_logger(_: &str, _: Severity) -> slog::Logger {
  48. use slog::*;
  49. Logger::root(Discard, o!())
  50. }
  51. pub fn dt_nanos(t: DateTime<Utc>) -> i64 {
  52. (t.timestamp() as i64) * 1_000_000_000_i64 + (t.timestamp_subsec_nanos() as i64)
  53. }
  54. pub fn dur_nanos(d: ::std::time::Duration) -> i64 {
  55. (d.as_secs() * 1_000_000_000_u64 + (d.subsec_nanos() as u64)) as i64
  56. }