Skip to content

Commit

Permalink
Sikkerlogg (#573)
Browse files Browse the repository at this point in the history
* fjerner ubrukt testklasse

* logg alle errors til sikkerlogg
  • Loading branch information
mortenbyhring authored Feb 15, 2024
1 parent fd7b9d2 commit 2c727f2
Show file tree
Hide file tree
Showing 14 changed files with 43 additions and 77 deletions.
5 changes: 4 additions & 1 deletion src/main/kotlin/no/nav/syfo/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import no.nav.helse.arbeidsgiver.bakgrunnsjobb.BakgrunnsjobbService
import no.nav.helse.arbeidsgiver.kubernetes.KubernetesProbeManager
import no.nav.helse.arbeidsgiver.system.getString
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.integration.kafka.UtsattOppgaveConsumer
import no.nav.syfo.integration.kafka.journalpost.JournalpostHendelseConsumer
import no.nav.syfo.koin.selectModuleBasedOnProfile
Expand Down Expand Up @@ -134,9 +135,11 @@ class SpinnApplication(val port: Int = 8080) : KoinComponent {

fun main() {
val logger = "main".logger()
val sikkerlogger = sikkerLogger()

Thread.currentThread().setUncaughtExceptionHandler { thread, err ->
logger.error("uncaught exception in thread ${thread.name}: ${err.message}", err)
logger.error("uncaught exception in thread ${thread.name}: ${err.message}")
sikkerlogger.error("uncaught exception in thread ${thread.name}: ${err.message}", err)
}

val application = SpinnApplication()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class InntektsmeldingBehandler(
logger.info("Slår opp aktørID for ${inntektsmelding.arkivRefereranse}")
val aktorid = pdlClient.getAktørid(inntektsmelding.fnr)
if (aktorid == null) {
logger.error("Fant ikke aktøren for arkivreferansen: $arkivreferanse")
sikkerlogger.error("Fant ikke aktøren for arkivreferansen: $arkivreferanse")
throw FantIkkeAktørException(null)
}
logger.info("Fant aktørid for ${inntektsmelding.arkivRefereranse}")
Expand Down
4 changes: 3 additions & 1 deletion src/main/kotlin/no/nav/syfo/client/OppgaveClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import io.ktor.http.ContentType
import io.ktor.http.contentType
import no.nav.helsearbeidsgiver.utils.log.MdcUtils
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.behandling.HentOppgaveException
import no.nav.syfo.behandling.OpprettFordelingsOppgaveException
import no.nav.syfo.behandling.OpprettOppgaveException
Expand All @@ -34,6 +35,7 @@ class OppgaveClient(
val getAccessToken: () -> String
) {
private val logger = this.logger()
private val sikkerlogger = sikkerLogger()

private suspend fun opprettOppgave(opprettOppgaveRequest: OpprettOppgaveRequest): OpprettOppgaveResponse = retry("opprett_oppgave") {
httpClient.post<OpprettOppgaveResponse>(oppgavebehndlingUrl) {
Expand Down Expand Up @@ -67,7 +69,7 @@ class OppgaveClient(
val oppgaveResponse = hentOppgave(oppgavetype = oppgavetype, journalpostId = journalpostId)
return if (oppgaveResponse.antallTreffTotalt > 0) OppgaveResultat(oppgaveResponse.oppgaver.first().id, true, false) else null
} catch (ex: Exception) {
logger.error("Feil ved sjekking av eksisterende oppgave", ex)
sikkerlogger.error("Feil ved sjekking av eksisterende oppgave", ex)
throw HentOppgaveException(journalpostId, oppgavetype, ex)
}
}
Expand Down
20 changes: 11 additions & 9 deletions src/main/kotlin/no/nav/syfo/client/dokarkiv/DokArkivClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import io.ktor.http.HttpStatusCode
import io.ktor.http.contentType
import no.nav.helse.arbeidsgiver.integrasjoner.AccessTokenProvider
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.helpers.retry
import java.io.IOException

Expand All @@ -25,6 +26,7 @@ class DokArkivClient(
private val httpClient: HttpClient
) {
private val logger = this.logger()
private val sikkerlogger = sikkerLogger()

/**
* Tjeneste som lar konsument "switche" status på en journalpost fra midlerdidig til endelig. Dersom journalposten
Expand Down Expand Up @@ -59,16 +61,16 @@ class DokArkivClient(
if (e is ClientRequestException) {
when (e.response.status) {
HttpStatusCode.NotFound -> {
logger.error("Journalposten finnes ikke for journalpostid $journalpostId", e)
sikkerlogger.error("Journalposten finnes ikke for journalpostid $journalpostId", e)
throw RuntimeException("Ferdigstilling: Journalposten finnes ikke for journalpostid $journalpostId", e)
}
else -> {
logger.error("Fikk http status ${e.response.status} for journalpostid $journalpostId", e)
sikkerlogger.error("Fikk http status ${e.response.status} for journalpostid $journalpostId", e)
throw RuntimeException("Ferdigstilling: Fikk feilmelding for journalpostid $journalpostId", e)
}
}
} else {
logger.error("Ferdigstilling: Dokarkiv svarte med feilmelding for journalpost $journalpostId", e)
sikkerlogger.error("Ferdigstilling: Dokarkiv svarte med feilmelding for journalpost $journalpostId", e)
}
throw IOException("Ferdigstilling: Dokarkiv svarte med feilmelding for journalpost $journalpostId", e)
}
Expand Down Expand Up @@ -103,16 +105,16 @@ class DokArkivClient(
if (e is ClientRequestException) {
when (e.response.status) {
HttpStatusCode.NotFound -> {
logger.error("Oppdatering: Journalposten finnes ikke for journalpostid {}, msgId {}", journalpostId, msgId)
sikkerlogger.error("Oppdatering: Journalposten finnes ikke for journalpostid {}, msgId {}", journalpostId, msgId)
throw RuntimeException("Oppdatering: Journalposten finnes ikke for journalpostid $journalpostId msgid $msgId")
}
else -> {
logger.error("Fikk http status {} ved oppdatering av journalpostid {}, msgId {}", e.response.status, journalpostId, msgId)
sikkerlogger.error("Fikk http status {} ved oppdatering av journalpostid {}, msgId {}", e.response.status, journalpostId, msgId)
throw RuntimeException("Fikk feilmelding ved oppdatering av journalpostid $journalpostId msgid $msgId")
}
}
}
logger.error("Dokarkiv svarte med feilmelding ved oppdatering av journalpost $journalpostId", e)
sikkerlogger.error("Dokarkiv svarte med feilmelding ved oppdatering av journalpost $journalpostId", e)
throw IOException("Dokarkiv svarte med feilmelding ved oppdatering av journalpost for $journalpostId msgid $msgId")
}
}
Expand All @@ -129,16 +131,16 @@ class DokArkivClient(
if (e is ClientRequestException) {
when (e.response.status) {
HttpStatusCode.NotFound -> {
logger.error("Klarte ikke feilregistrere journalpost $journalpostId", e)
sikkerlogger.error("Klarte ikke feilregistrere journalpost $journalpostId", e)
throw RuntimeException("feilregistrering: Journalposten finnes ikke for journalpostid $journalpostId", e)
}
else -> {
logger.error("Fikk http status ${e.response.status} ved feilregistrering av journalpost $journalpostId", e)
sikkerlogger.error("Fikk http status ${e.response.status} ved feilregistrering av journalpost $journalpostId", e)
throw RuntimeException("Fikk feilmelding ved feilregistrering av journalpostid $journalpostId", e)
}
}
}
logger.error("Dokarkiv svarte med feilmelding ved feilregistrering av journalpost $journalpostId", e)
sikkerlogger.error("Dokarkiv svarte med feilmelding ved feilregistrering av journalpost $journalpostId", e)
throw IOException("Dokarkiv svarte med feilmelding ved feilregistrering av journalpost for $journalpostId", e)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import no.nav.helse.arbeidsgiver.kubernetes.LivenessComponent
import no.nav.helse.arbeidsgiver.kubernetes.ReadynessComponent
import no.nav.helsearbeidsgiver.utils.log.MdcUtils
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.utsattoppgave.DokumentTypeDTO
import no.nav.syfo.utsattoppgave.FeiletUtsattOppgaveMeldingProsessor
import no.nav.syfo.utsattoppgave.OppgaveOppdatering
Expand All @@ -29,6 +30,7 @@ class UtsattOppgaveConsumer(

private val consumer: KafkaConsumer<String, String> = KafkaConsumer(props, StringDeserializer(), StringDeserializer())
private val logger = this.logger()
private val sikkerlogger = sikkerLogger()
private var ready = false
private var error = false

Expand Down Expand Up @@ -63,7 +65,7 @@ class UtsattOppgaveConsumer(
}
it.commitSync()
} catch (e: Throwable) {
logger.error("Klarte ikke behandle UtsattOppgave. Stopper lytting!", e)
sikkerlogger.error("Klarte ikke behandle UtsattOppgave. Stopper lytting!", e)
setIsError(true)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import no.nav.helse.arbeidsgiver.bakgrunnsjobb.Bakgrunnsjobb
import no.nav.helse.arbeidsgiver.bakgrunnsjobb.BakgrunnsjobbRepository
import no.nav.helse.arbeidsgiver.kubernetes.LivenessComponent
import no.nav.helse.arbeidsgiver.kubernetes.ReadynessComponent
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.kafkamottak.InngaaendeJournalpostDTO
import no.nav.syfo.prosesser.JoarkInntektsmeldingHendelseProsessor
import org.apache.avro.generic.GenericRecord
Expand All @@ -25,6 +26,7 @@ class JournalpostHendelseConsumer(
) : ReadynessComponent, LivenessComponent {

private val log = LoggerFactory.getLogger(JournalpostHendelseConsumer::class.java)
private val sikkerlogger = sikkerLogger()
private val consumer: KafkaConsumer<String, GenericRecord> = KafkaConsumer(props)
private var ready = false
private var error = false
Expand Down Expand Up @@ -52,7 +54,7 @@ class JournalpostHendelseConsumer(
processHendelse(mapJournalpostHendelse(record.value()))
it.commitSync()
} catch (e: Throwable) {
log.error("Klarte ikke behandle hendelse. Stopper lytting!", e)
sikkerlogger.error("Klarte ikke behandle hendelse. Stopper lytting!", e)
setIsError(true)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import io.ktor.client.features.ClientRequestException
import io.ktor.client.request.forms.submitForm
import io.ktor.http.Parameters
import kotlinx.coroutines.runBlocking
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.security.token.support.client.core.context.JwtBearerTokenResolver
import no.nav.security.token.support.client.core.http.OAuth2HttpClient
import no.nav.security.token.support.client.core.http.OAuth2HttpRequest
Expand All @@ -15,7 +15,7 @@ import no.nav.security.token.support.ktor.TokenValidationContextPrincipal
import java.util.Optional

class DefaultOAuth2HttpClient(private val httpClient: HttpClient) : OAuth2HttpClient {
private val logger = this.logger()
private val sikkerlogger = sikkerLogger()

override fun post(oAuth2HttpRequest: OAuth2HttpRequest): OAuth2AccessTokenResponse {
return runBlocking {
Expand All @@ -30,7 +30,7 @@ class DefaultOAuth2HttpClient(private val httpClient: HttpClient) : OAuth2HttpCl
)
} catch (ex: Exception) {
if (ex is ClientRequestException) {
logger.error(ex.response.receive<String>())
sikkerlogger.error(ex.response.receive<String>())
}

throw ex
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ class JoarkInntektsmeldingHendelseProsessor(
metrikk.tellInntektsmeldingUtenArkivReferanse()
throw InntektsmeldingConsumerException(e)
} catch (e: BehandlingException) {
logger.error("Feil ved behandling av inntektsmelding med arkivreferanse $arkivReferanse", e)
sikkerlogger.error("Feil ved behandling av inntektsmelding med arkivreferanse $arkivReferanse", e)
metrikk.tellBehandlingsfeil(e.feiltype)
lagreFeilet(arkivReferanse, e.feiltype)
throw InntektsmeldingConsumerException(e)
} catch (e: Exception) {
logger.error("Det skjedde en feil ved journalføring med arkivreferanse $arkivReferanse", e)
sikkerlogger.error("Det skjedde en feil ved journalføring med arkivreferanse $arkivReferanse", e)
metrikk.tellBehandlingsfeil(Feiltype.USPESIFISERT)
lagreFeilet(arkivReferanse, Feiltype.USPESIFISERT)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import kotlinx.coroutines.runBlocking
import no.nav.helse.arbeidsgiver.integrasjoner.pdl.PdlClient
import no.nav.helsearbeidsgiver.utils.log.MdcUtils
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.behandling.BehandlendeEnhetFeiletException
import no.nav.syfo.behandling.IngenAktivEnhetException
import no.nav.syfo.client.norg.ArbeidsfordelingRequest
Expand All @@ -21,6 +22,7 @@ class BehandlendeEnhetConsumer(
private val metrikk: Metrikk
) {
private val logger = this.logger()
private val sikkerlogger = sikkerLogger()

fun hentBehandlendeEnhet(fnr: String, uuid: String): String {
val geografiskTilknytning = hentGeografiskTilknytning(fnr)
Expand All @@ -46,7 +48,7 @@ class BehandlendeEnhetConsumer(
logger.info("Fant geografiskTilknytning ${geografiskTilknytning.geografiskTilknytning} med behandlendeEnhet $behandlendeEnhet for inntektsmelding $uuid")
return behandlendeEnhet
} catch (e: RuntimeException) {
logger.error("Klarte ikke å hente behandlende enhet!", e)
sikkerlogger.error("Klarte ikke å hente behandlende enhet!", e)
throw BehandlendeEnhetFeiletException(e)
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/no/nav/syfo/service/JournalConsumer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package no.nav.syfo.service

import kotlinx.coroutines.runBlocking
import no.nav.helse.arbeidsgiver.integrasjoner.pdl.PdlClient
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.behandling.HentDokumentFeiletException
import no.nav.syfo.client.saf.SafDokumentClient
import no.nav.syfo.client.saf.SafJournalpostClient
Expand All @@ -20,7 +20,7 @@ class JournalConsumer(
private val safJournalpostClient: SafJournalpostClient,
private val pdlClient: PdlClient
) {
private val logger = this.logger()
private val sikkerlogger = sikkerLogger()

/**
* 1 - Henter inntektsmelding fra journalpost i byteArray
Expand All @@ -42,7 +42,7 @@ class JournalConsumer(
else
InntektsmeldingArbeidsgiverPrivat20181211Mapper.fraXMLInntektsmelding(jaxbInntektsmelding, journalpostId, mottattDato, journalStatus, arkivReferanse, pdlClient)
} catch (e: RuntimeException) {
logger.error("Klarte ikke å hente inntektsmelding med journalpostId: $journalpostId", e)
sikkerlogger.error("Klarte ikke å hente inntektsmelding med journalpostId: $journalpostId", e)
throw HentDokumentFeiletException(journalpostId, e)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class InntektsmeldingConsumer(
val aktorid = pdlClient.getAktørid(inntektsmeldingFraSimba.identitetsnummer)
val arkivreferanse = "im_$journalpostId"
if (aktorid == null) {
log.error("Fant ikke aktøren for arkivreferansen: $arkivreferanse")
sikkerlogger.error("Fant ikke aktøren for arkivreferansen: $arkivreferanse")
throw FantIkkeAktørException(null)
}
val inntektsmelding = mapInntektsmelding(arkivreferanse, aktorid, journalpostId, inntektsmeldingFraSimba)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue
import kotlinx.coroutines.runBlocking
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.syfo.client.OppgaveClient
import no.nav.syfo.domain.OppgaveResultat
import no.nav.syfo.domain.inntektsmelding.Inntektsmelding
Expand All @@ -28,6 +29,7 @@ class UtsattOppgaveService(
) {

private val logger = this.logger()
private val sikkerlogger = sikkerLogger()

fun prosesser(oppdatering: OppgaveOppdatering) {
val oppgave = utsattOppgaveDAO.finn(oppdatering.id.toString())
Expand Down Expand Up @@ -67,7 +69,7 @@ class UtsattOppgaveService(
metrikk.tellUtsattOppgave_Opprett()
logger.info("Endret oppgave: ${oppgave.inntektsmeldingId} til tilstand: ${Tilstand.Opprettet.name} gosys oppgaveID: ${resultat.oppgaveId} duplikat? ${resultat.duplikat}")
} else {
logger.error("Fant ikke inntektsmelding for ID '${oppgave.inntektsmeldingId}'.")
sikkerlogger.error("Fant ikke inntektsmelding for ID '${oppgave.inntektsmeldingId}'.")
}
}
else -> {
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/no/nav/syfo/web/nais/NaisRoutes.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@ import io.prometheus.client.exporter.common.TextFormat
import no.nav.helse.arbeidsgiver.kubernetes.KubernetesProbeManager
import no.nav.helse.arbeidsgiver.kubernetes.ProbeResult
import no.nav.helse.arbeidsgiver.kubernetes.ProbeState
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import org.koin.ktor.ext.get
import java.util.Collections

fun Application.nais() {

val logger = "Helsesjekker".logger()
val sikkerlogger = sikkerLogger()

suspend fun PipelineContext<Unit, ApplicationCall>.returnResultOfChecks(checkResults: ProbeResult) {
val httpResult =
if (checkResults.state == ProbeState.UN_HEALTHY) HttpStatusCode.InternalServerError else HttpStatusCode.OK
checkResults.unhealthyComponents.forEach { r ->
r.error?.let { logger.error("Helsesjekk feiler for ${r.componentName}", it) }
r.error?.let { sikkerlogger.error("Helsesjekk feiler for ${r.componentName}", it) }
}
call.respond(httpResult, checkResults)
}
Expand Down
49 changes: 0 additions & 49 deletions src/test/kotlin/no/nav/syfo/slowtests/kafka/KafkaAdminForTests.kt

This file was deleted.

0 comments on commit 2c727f2

Please sign in to comment.