Skip to content

Commit

Permalink
Prepare release of v1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
felixbrucker committed Nov 9, 2023
1 parent 396fee3 commit cd93fd7
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@foxypool/chia-log-analyzer",
"version": "1.0.4",
"version": "1.1.0",
"author": "Felix Brucker <[email protected]>",
"license": "GPL-3.0-or-later",
"type": "module",
Expand Down
14 changes: 10 additions & 4 deletions src/analyze-chia-log.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,23 @@ export interface LogAnalyzationResult {
plotNfts: PlotNft[]
}

export function analyzeChiaLog(logFileContent: string): LogAnalyzationResult {
export interface AnalyzeOptions {
ignoreCriticalLogsMatching?: string[]
ignoreErrorLogsMatching?: string[]
ignoreWarningLogsMatching?: string[]
}

export function analyzeChiaLog(logFileContent: string, options?: AnalyzeOptions): LogAnalyzationResult {
const logLines = mapLogFileContentsToLogLines(logFileContent)

const criticalLogLines = logLines.filter(logLine => logLine.logLevel === LogLevel.critical)
const errorLogLines = logLines.filter(logLine => logLine.logLevel === LogLevel.error)
const warningLogLines = logLines.filter(logLine => logLine.logLevel === LogLevel.warning)
const infoLogLines = logLines.filter(logLine => logLine.logLevel === LogLevel.info)

const groupedCriticalLines = groupSimilarLogLines(criticalLogLines)
const groupedErrorLines = groupSimilarLogLines(errorLogLines)
const groupedWarningLines = groupSimilarLogLines(warningLogLines)
const groupedCriticalLines = groupSimilarLogLines(criticalLogLines, options?.ignoreCriticalLogsMatching ?? [])
const groupedErrorLines = groupSimilarLogLines(errorLogLines, options?.ignoreErrorLogsMatching ?? [])
const groupedWarningLines = groupSimilarLogLines(warningLogLines, options?.ignoreWarningLogsMatching ?? [])

return {
groupedCriticalLines,
Expand Down
5 changes: 4 additions & 1 deletion src/analyzer/log-level-grouping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ const maxDistance = messageLengthForGrouping - Math.round(messageLengthForGroupi

export type GroupedLines = Map<string, LogLine[]>

export function groupSimilarLogLines(logLines: LogLine[]): GroupedLines {
export function groupSimilarLogLines(logLines: LogLine[], ignoreLinesMatching: string[] = []): GroupedLines {
return logLines
.reduce((logLineGroups, logLine) => {
if (ignoreLinesMatching.some(ignoreLineMatching => logLine.message.indexOf(ignoreLineMatching) !== -1)) {
return logLineGroups
}
const logLineGroup = `${logLine.service}:${logLine.file}:${logLine.message.slice(0, messageLengthForGrouping)}`
const matchingLogLineGroup = Array.from(logLineGroups.keys())
.find(currLogLineGroup => distance(currLogLineGroup, logLineGroup) <= maxDistance)
Expand Down

0 comments on commit cd93fd7

Please sign in to comment.