Skip to content

Commit 49feba6

Browse files
committed
graph, graphql: Replace custom LogLevel enum with slog::Level
1 parent cbb4a73 commit 49feba6

5 files changed

Lines changed: 13 additions & 48 deletions

File tree

graph/src/components/log_store/elasticsearch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ impl ElasticsearchLogStore {
4545
if let Some(level) = &query.level {
4646
must_clauses.push(json!({
4747
"term": {
48-
"level": level.as_str()
48+
"level": level.as_str().to_ascii_lowercase()
4949
}
5050
}));
5151
}

graph/src/components/log_store/file.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,8 @@ struct FileLogMeta {
286286

287287
#[cfg(test)]
288288
mod tests {
289-
use super::super::LogLevel;
290289
use super::*;
290+
use slog::Level;
291291
use std::io::Write;
292292
use tempfile::TempDir;
293293

@@ -377,7 +377,7 @@ mod tests {
377377
assert_eq!(entries.len(), 1);
378378
assert_eq!(entries[0].id, "log-1");
379379
assert_eq!(entries[0].text, "Test error message");
380-
assert_eq!(entries[0].level, LogLevel::Error);
380+
assert_eq!(entries[0].level, Level::Error);
381381
}
382382

383383
#[tokio::test]
@@ -410,7 +410,7 @@ mod tests {
410410
// Query for errors only
411411
let query = LogQuery {
412412
subgraph_id,
413-
level: Some(LogLevel::Error),
413+
level: Some(Level::Error),
414414
from: None,
415415
to: None,
416416
search: None,
@@ -424,7 +424,7 @@ mod tests {
424424

425425
let entries = result.unwrap();
426426
assert_eq!(entries.len(), 2);
427-
assert!(entries.iter().all(|e| e.level == LogLevel::Error));
427+
assert!(entries.iter().all(|e| e.level == Level::Error));
428428
}
429429

430430
#[tokio::test]

graph/src/components/log_store/loki.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ impl LokiLogStore {
3333

3434
// Add log level selector if specified
3535
if let Some(level) = &query.level {
36-
selectors.push(format!("level=\"{}\"", level.as_str()));
36+
selectors.push(format!("level=\"{}\"", level.as_str().to_ascii_lowercase()));
3737
}
3838

3939
// Base selector
@@ -234,8 +234,8 @@ struct LokiLogMeta {
234234

235235
#[cfg(test)]
236236
mod tests {
237-
use super::super::LogLevel;
238237
use super::*;
238+
use slog::Level;
239239

240240
#[test]
241241
fn test_build_logql_query_basic() {
@@ -260,7 +260,7 @@ mod tests {
260260
let store = LokiLogStore::new("http://localhost:3100".to_string(), None).unwrap();
261261
let query = LogQuery {
262262
subgraph_id: DeploymentHash::new("QmTest").unwrap(),
263-
level: Some(LogLevel::Error),
263+
level: Some(Level::Error),
264264
from: None,
265265
to: None,
266266
search: None,

graph/src/components/log_store/mod.rs

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ pub mod file;
44
pub mod loki;
55

66
use async_trait::async_trait;
7+
use slog::Level;
78
use std::fmt;
89
use std::path::PathBuf;
910
use std::str::FromStr;
@@ -55,42 +56,6 @@ pub enum LogStoreConfig {
5556
},
5657
}
5758

58-
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
59-
pub enum LogLevel {
60-
Critical,
61-
Error,
62-
Warning,
63-
Info,
64-
Debug,
65-
}
66-
67-
impl LogLevel {
68-
pub fn as_str(&self) -> &'static str {
69-
match self {
70-
LogLevel::Critical => "critical",
71-
LogLevel::Error => "error",
72-
LogLevel::Warning => "warning",
73-
LogLevel::Info => "info",
74-
LogLevel::Debug => "debug",
75-
}
76-
}
77-
}
78-
79-
impl FromStr for LogLevel {
80-
type Err = String;
81-
82-
fn from_str(s: &str) -> Result<Self, Self::Err> {
83-
match s.trim().to_lowercase().as_str() {
84-
"critical" => Ok(LogLevel::Critical),
85-
"error" => Ok(LogLevel::Error),
86-
"warning" => Ok(LogLevel::Warning),
87-
"info" => Ok(LogLevel::Info),
88-
"debug" => Ok(LogLevel::Debug),
89-
_ => Err(format!("Invalid log level: {}", s)),
90-
}
91-
}
92-
}
93-
9459
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9560
pub enum OrderDirection {
9661
Asc,
@@ -136,7 +101,7 @@ pub struct LogEntry {
136101
pub id: String,
137102
pub subgraph_id: DeploymentHash,
138103
pub timestamp: String,
139-
pub level: LogLevel,
104+
pub level: Level,
140105
pub text: String,
141106
pub arguments: Vec<(String, String)>,
142107
pub meta: LogMeta,
@@ -145,7 +110,7 @@ pub struct LogEntry {
145110
#[derive(Debug, Clone)]
146111
pub struct LogQuery {
147112
pub subgraph_id: DeploymentHash,
148-
pub level: Option<LogLevel>,
113+
pub level: Option<Level>,
149114
pub from: Option<String>,
150115
pub to: Option<String>,
151116
pub search: Option<String>,

graphql/src/store/logs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ pub fn build_log_query(
7070
match name.as_str() {
7171
"level" => {
7272
if let r::Value::Enum(level_str) = value {
73-
level = Some(level_str.parse().map_err(|e: String| {
73+
level = Some(level_str.parse().map_err(|_| {
7474
QueryExecutionError::InvalidArgumentError(
7575
field.position,
7676
"level".to_string(),
77-
q::Value::String(e),
77+
q::Value::String(format!("Invalid log level: {}", level_str)),
7878
)
7979
})?);
8080
}

0 commit comments

Comments
 (0)