Improve log events, adding new logger to capture data

This commit is contained in:
eikek
2022-05-01 12:15:42 +02:00
parent c995ee12d6
commit 506fbcbcb7
12 changed files with 247 additions and 44 deletions

View File

@ -11,7 +11,6 @@ import cats.implicits._
import fs2.Pipe
import docspell.common._
import docspell.logging
import docspell.store.Store
import docspell.store.records.RJobLog
@ -29,27 +28,26 @@ object LogSink {
}
def logInternal[F[_]: Sync](e: LogEvent): F[Unit] = {
val logger = docspell.logging.getLogger[F](e.taskName.id)
val addData: logging.LogEvent => logging.LogEvent =
_.data("jobId", e.jobId)
.data("task", e.taskName)
.data("group", e.group)
.data("jobInfo", e.jobInfo)
.addData(e.data)
val logger = docspell.logging
.getLogger[F]
.capture("jobId", e.jobId)
.capture("task", e.taskName)
.capture("group", e.group)
.capture("jobInfo", e.jobInfo)
e.level match {
case LogLevel.Info =>
logger.infoWith(e.logLine)(addData)
logger.info(e.logLine)
case LogLevel.Debug =>
logger.debugWith(e.logLine)(addData)
logger.debug(e.logLine)
case LogLevel.Warn =>
logger.warnWith(e.logLine)(addData)
logger.warn(e.logLine)
case LogLevel.Error =>
e.ex match {
case Some(exc) =>
logger.errorWith(e.logLine)(addData.andThen(_.addError(exc)))
logger.error(exc)(e.logLine)
case None =>
logger.errorWith(e.logLine)(addData)
logger.error(e.logLine)
}
}
}

View File

@ -29,7 +29,7 @@ object QueueLogger {
): Logger[F] =
new Logger[F] {
def log(logEvent: logging.LogEvent) =
def log(logEvent: => logging.LogEvent) =
LogEvent
.create[F](
jobId,
@ -38,7 +38,7 @@ object QueueLogger {
jobInfo,
level2Level(logEvent.level),
logEvent.msg(),
logEvent.data.view.mapValues(f => f()).toMap
logEvent.data.toMap
)
.flatMap { ev =>
val event =