comparison src/logging.rs @ 134:6c1e1bdb4164

Use standard #[cfg] directives rather than custom proc macros. Instead of having to do a bunch of custom parsing and other logic that tools often choke on, this change introduces an easy way to depend upon custom #[cfg]s provided by the libpam-sys crate.
author Paul Fisher <paul@pfish.zone>
date Thu, 03 Jul 2025 11:03:36 -0400
parents 80c07e5ab22f
children efbc235f01d3
comparison
equal deleted inserted replaced
133:32b2a545ca3e 134:6c1e1bdb4164
13 //! 13 //!
14 //! A `PamShared` implementation may still use the `log` crate on the backend, 14 //! A `PamShared` implementation may still use the `log` crate on the backend,
15 //! and may even itself implement `log::Log`, but that interface is not exposed 15 //! and may even itself implement `log::Log`, but that interface is not exposed
16 //! to the generic PAM user. 16 //! to the generic PAM user.
17 17
18 use libpam_sys::cfg_pam_impl; 18 #[cfg(pam_impl = "OpenPam")]
19
20 #[cfg_pam_impl("OpenPam")]
21 mod levels { 19 mod levels {
22 pub const ERROR: i32 = libpam_sys::PAM_LOG_ERROR; 20 pub const ERROR: i32 = libpam_sys::PAM_LOG_ERROR;
23 pub const WARN: i32 = libpam_sys::PAM_LOG_NOTICE; 21 pub const WARN: i32 = libpam_sys::PAM_LOG_NOTICE;
24 pub const INFO: i32 = libpam_sys::PAM_LOG_VERBOSE; 22 pub const INFO: i32 = libpam_sys::PAM_LOG_VERBOSE;
25 pub const DEBUG: i32 = libpam_sys::PAM_LOG_DEBUG; 23 pub const DEBUG: i32 = libpam_sys::PAM_LOG_DEBUG;
26 } 24 }
27 #[cfg_pam_impl(not("OpenPam"))] 25 #[cfg(not(pam_impl = "OpenPam"))]
28 mod levels { 26 mod levels {
29 pub const ERROR: i32 = libc::LOG_ERR; 27 pub const ERROR: i32 = libc::LOG_ERR;
30 pub const WARN: i32 = libc::LOG_WARNING; 28 pub const WARN: i32 = libc::LOG_WARNING;
31 pub const INFO: i32 = libc::LOG_INFO; 29 pub const INFO: i32 = libc::LOG_INFO;
32 pub const DEBUG: i32 = libc::LOG_DEBUG; 30 pub const DEBUG: i32 = libc::LOG_DEBUG;
168 /// ```no_run 166 /// ```no_run
169 /// # fn _test(pam_handle: impl nonstick::PamShared) { 167 /// # fn _test(pam_handle: impl nonstick::PamShared) {
170 /// # let userinfo_url = "https://zombo.com/"; 168 /// # let userinfo_url = "https://zombo.com/";
171 /// nonstick::debug!(pam_handle, "making HTTP GET request to {userinfo_url}"); 169 /// nonstick::debug!(pam_handle, "making HTTP GET request to {userinfo_url}");
172 /// // Will log a message like 170 /// // Will log a message like
173 /// // making HTTP GET request to https://zombo.com/" 171 /// // "making HTTP GET request to https://zombo.com/"
174 /// // at DEBUG level on syslog. 172 /// // at DEBUG level on syslog.
175 /// # } 173 /// # }
176 /// ``` 174 /// ```
177 #[macro_export] 175 #[macro_export]
178 macro_rules! debug { ($handle:expr, $($arg:tt)+) => { $crate::__log_internal!($handle, Debug, $($arg)+);}} 176 macro_rules! debug { ($handle:expr, $($arg:tt)+) => { $crate::__log_internal!($handle, Debug, $($arg)+);}}