Skip to content

Internal Helpers

Backend

Logging

We use zerolog as a logging library and we provide some wrappers for convenience. You can get a logger in any of the Go binaries like this:

Default Logger

import "moyaflow/stream/pkg/log"

func DoSomething() {
  log := log.Get()
}

or to add custom attributes:

import "moyaflow/stream/pkg/log"

func DoSomething() {
  log := log.Get().With().Str("component", "my-service").Logger()
}

Enriched Logger

Note

The following is currently only available within solaris

To get a logger enriched from the current context:

import "moyaflow/stream/apps/solaris/shared/logctx"

func DoSomething() {
  log := logctx.FromContext(ctx)
}

or with a component name:

import "moyaflow/stream/apps/solaris/shared/logctx"

func DoSomething() {
  log := logctx.FromContextNamed(ctx, "my-service")
}

Frontend

Logging

We use LogTape as a logger in our frontend apps. If you are only adding logs for debugging purposes and plan on removing them before your PR is merged, you can keep using console.. However, if you want to add a permanent log like for warnings, errors or generally useful debug information you should use the @helios/generic/frontend/logger internal library.

import { createLogger } from "@helios/generic/frontend/logger";

@Injectable()
export class MyService {
  private log = createLogger("my-service");
}