You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2023/04/29 11:23:53 UTC

[incubator-opendal] branch main updated: refactor(layers/logging): parsing level str (#2160)

This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new 4aa54745 refactor(layers/logging): parsing level str (#2160)
4aa54745 is described below

commit 4aa5474561f17929170771a258793ecdb1cb7992
Author: Chojan Shang <ps...@apache.org>
AuthorDate: Sat Apr 29 19:23:49 2023 +0800

    refactor(layers/logging): parsing level str (#2160)
    
    * refactor(layers/logging): parsing level str
    
    Signed-off-by: Chojan Shang <ps...@apache.org>
    
    * fix: make clippy happy
    
    Signed-off-by: Chojan Shang <ps...@apache.org>
    
    * refactor(layer/logging): parse level must succeed
    
    Signed-off-by: Chojan Shang <ps...@apache.org>
    
    * refactor(layer/logging): return reslut self
    
    Signed-off-by: Chojan Shang <ps...@apache.org>
    
    * refactor(layer/logging): return an error install panic
    
    Signed-off-by: Chojan Shang <ps...@apache.org>
    
    * refactor(layer/logging): add input level to error context
    
    Signed-off-by: Chojan Shang <ps...@apache.org>
    
    ---------
    
    Signed-off-by: Chojan Shang <ps...@apache.org>
---
 core/src/layers/logging.rs | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/core/src/layers/logging.rs b/core/src/layers/logging.rs
index 208ebffb..385cde8f 100644
--- a/core/src/layers/logging.rs
+++ b/core/src/layers/logging.rs
@@ -105,9 +105,17 @@ impl LoggingLayer {
     /// For example: accessor returns NotFound.
     ///
     /// `None` means disable the log for error.
-    pub fn with_error_level(mut self, level: Option<Level>) -> Self {
-        self.error_level = level;
-        self
+    pub fn with_error_level(mut self, level: Option<&str>) -> Result<Self> {
+        if let Some(level_str) = level {
+            let level = level_str.parse().map_err(|_| {
+                Error::new(ErrorKind::ConfigInvalid, "invalid log level")
+                    .with_context("level", level_str)
+            })?;
+            self.error_level = Some(level);
+        } else {
+            self.error_level = None;
+        }
+        Ok(self)
     }
 
     /// Setting the log level while unexpected failure happened.
@@ -115,9 +123,17 @@ impl LoggingLayer {
     /// For example: accessor returns Unexpected network error.
     ///
     /// `None` means disable the log for failure.
-    pub fn with_failure_level(mut self, level: Option<Level>) -> Self {
-        self.failure_level = level;
-        self
+    pub fn with_failure_level(mut self, level: Option<&str>) -> Result<Self> {
+        if let Some(level_str) = level {
+            let level = level_str.parse().map_err(|_| {
+                Error::new(ErrorKind::ConfigInvalid, "invalid log level")
+                    .with_context("level", level_str)
+            })?;
+            self.failure_level = Some(level);
+        } else {
+            self.failure_level = None;
+        }
+        Ok(self)
     }
 }