+
+ #[test]
+ fn test_logging_with_context() {
+ let logger = &TestLogger::new();
+ let secp_ctx = Secp256k1::new();
+ let pk = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
+ let context_logger = WithContext::from(&logger, Some(pk), Some(ChannelId([0; 32])));
+ log_error!(context_logger, "This is an error");
+ log_warn!(context_logger, "This is an error");
+ log_debug!(context_logger, "This is an error");
+ log_trace!(context_logger, "This is an error");
+ log_gossip!(context_logger, "This is an error");
+ log_info!(context_logger, "This is an error");
+ logger.assert_log_context_contains(
+ "lightning::util::logger::tests", Some(pk), Some(ChannelId([0;32])), 6
+ );
+ }
+
+ #[test]
+ fn test_logging_with_multiple_wrapped_context() {
+ let logger = &TestLogger::new();
+ let secp_ctx = Secp256k1::new();
+ let pk = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
+ let context_logger = &WithContext::from(&logger, None, Some(ChannelId([0; 32])));
+ let full_context_logger = WithContext::from(&context_logger, Some(pk), None);
+ log_error!(full_context_logger, "This is an error");
+ log_warn!(full_context_logger, "This is an error");
+ log_debug!(full_context_logger, "This is an error");
+ log_trace!(full_context_logger, "This is an error");
+ log_gossip!(full_context_logger, "This is an error");
+ log_info!(full_context_logger, "This is an error");
+ logger.assert_log_context_contains(
+ "lightning::util::logger::tests", Some(pk), Some(ChannelId([0;32])), 6
+ );
+ }
+
+ #[test]
+ fn test_log_ordering() {
+ assert!(Level::Error > Level::Warn);
+ assert!(Level::Error >= Level::Warn);
+ assert!(Level::Error >= Level::Error);
+ assert!(Level::Warn > Level::Info);
+ assert!(Level::Warn >= Level::Info);
+ assert!(Level::Warn >= Level::Warn);
+ assert!(Level::Info > Level::Debug);
+ assert!(Level::Info >= Level::Debug);
+ assert!(Level::Info >= Level::Info);
+ assert!(Level::Debug > Level::Trace);
+ assert!(Level::Debug >= Level::Trace);
+ assert!(Level::Debug >= Level::Debug);
+ assert!(Level::Trace > Level::Gossip);
+ assert!(Level::Trace >= Level::Gossip);
+ assert!(Level::Trace >= Level::Trace);
+ assert!(Level::Gossip >= Level::Gossip);
+
+ assert!(Level::Error <= Level::Error);
+ assert!(Level::Warn < Level::Error);
+ assert!(Level::Warn <= Level::Error);
+ assert!(Level::Warn <= Level::Warn);
+ assert!(Level::Info < Level::Warn);
+ assert!(Level::Info <= Level::Warn);
+ assert!(Level::Info <= Level::Info);
+ assert!(Level::Debug < Level::Info);
+ assert!(Level::Debug <= Level::Info);
+ assert!(Level::Debug <= Level::Debug);
+ assert!(Level::Trace < Level::Debug);
+ assert!(Level::Trace <= Level::Debug);
+ assert!(Level::Trace <= Level::Trace);
+ assert!(Level::Gossip < Level::Trace);
+ assert!(Level::Gossip <= Level::Trace);
+ assert!(Level::Gossip <= Level::Gossip);
+ }