#[non_exhaustive]
pub enum Caching {
Nothing,
Loggers,
LoggersAndLevels,
}
Expand description
What the Logger
can cache.
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Nothing
Disables caching.
Every time a log message passes the filters, the code goes to the Python side to check if the message shall be logged.
Loggers
Caches the Python Logger
objects.
The logger objects (which should stay the same during the lifetime of a Python application) are cached. However, the log levels are not. This means there’s some amount of calling of Python code saved during a logging call, but the GIL still needs to be acquired even if the message doesn’t eventually get output anywhere.
LoggersAndLevels
Caches both the Python Logger
and their respective effective log levels.
Therefore, once a Logger
has been cached, it is possible to decide on the Rust side if a
message would get logged or not. If the message is not to be logged, no Python code is
called and the GIL doesn’t have to be acquired.
Trait Implementations
sourceimpl PartialEq<Caching> for Caching
impl PartialEq<Caching> for Caching
impl Copy for Caching
impl Eq for Caching
impl StructuralEq for Caching
impl StructuralPartialEq for Caching
Auto Trait Implementations
impl RefUnwindSafe for Caching
impl Send for Caching
impl Sync for Caching
impl Unpin for Caching
impl UnwindSafe for Caching
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more