mirror of
https://codeberg.org/icewind/logsmash.git
synced 2026-06-03 10:04:12 +02:00
better searching distrinct logs
This commit is contained in:
parent
e982a12df5
commit
f1d53dea58
3 changed files with 16 additions and 7 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
use crate::grouping::{GroupingResult, UniqueGrouping};
|
||||||
use crate::logfile::{LogFile, LogLine, LogLineNumber};
|
use crate::logfile::{LogFile, LogLine, LogLineNumber};
|
||||||
use crate::logs::ParsedLogs;
|
use crate::logs::ParsedLogs;
|
||||||
use crate::timegraph::{SparkLine, TimeGraph};
|
use crate::timegraph::{SparkLine, TimeGraph};
|
||||||
|
|
@ -91,9 +92,7 @@ impl<'logs> LineSet<'logs> {
|
||||||
if line.request_id == filter.filter {
|
if line.request_id == filter.filter {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
filter
|
UniqueGrouping { line }.matches(filter)
|
||||||
.parts()
|
|
||||||
.all(|filter_part| filter_part.is_match(&line.message))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn iter<'a>(&'a self) -> impl Iterator<Item = &'logs LogLine<'logs>> + use<'a, 'logs> {
|
pub fn iter<'a>(&'a self) -> impl Iterator<Item = &'logs LogLine<'logs>> + use<'a, 'logs> {
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,14 @@ impl<'a> GroupingResult<'a> for UniqueGrouping<'a> {
|
||||||
if filter.is_empty() {
|
if filter.is_empty() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
filter
|
filter.parts().all(|filter_part| {
|
||||||
.parts()
|
if let Some(ex) = self.line.exception.as_ref() {
|
||||||
.all(|filter_part| filter_part.is_match(&self.line.message))
|
if filter_part.is_match(&ex.message) || filter_part.is_match(&ex.exception) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filter_part.is_match(&self.line.message)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render(&self) -> impl Iterator<Item = Cow<'a, str>> {
|
fn render(&self) -> impl Iterator<Item = Cow<'a, str>> {
|
||||||
|
|
|
||||||
|
|
@ -196,8 +196,13 @@ impl<'a> LogLine<'a> {
|
||||||
if filter.is_empty() {
|
if filter.is_empty() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// todo: exception, more?
|
|
||||||
filter.parts().all(|filter_part| {
|
filter.parts().all(|filter_part| {
|
||||||
|
if let Some(ex) = self.exception.as_ref() {
|
||||||
|
if filter_part.is_match(&ex.message) || filter_part.is_match(&ex.exception) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
filter_part.is_match(&self.app)
|
filter_part.is_match(&self.app)
|
||||||
|| filter_part.is_match(&self.message)
|
|| filter_part.is_match(&self.message)
|
||||||
|| filter_part.is_match(self.request_id.as_str())
|
|| filter_part.is_match(self.request_id.as_str())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue