Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/three-zoos-enter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"effect": patch
---

Added new 'Off' LogLevel that works the exact same way as LogLevel.None
21 changes: 20 additions & 1 deletion packages/effect/src/LogLevel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import type { Pipeable } from "./Pipeable.js"
* @property label - A label associated with the log level.
* @property syslog -The syslog severity level of the log level.
*/
export type LogLevel = All | Fatal | Error | Warning | Info | Debug | Trace | None
export type LogLevel = All | Fatal | Error | Warning | Info | Debug | Trace | None | Off

/**
* @since 2.0.0
Expand Down Expand Up @@ -111,6 +111,17 @@ export interface Trace extends Pipeable {
*/
export interface None extends Pipeable {
readonly _tag: "None"
readonly label: "NONE"
readonly syslog: 7
readonly ordinal: number
}

/**
* @since 2.0.0
* @category model
*/
export interface Off extends Pipeable {
readonly _tag: "Off"
readonly label: "OFF"
readonly syslog: 7
readonly ordinal: number
Expand Down Expand Up @@ -164,6 +175,12 @@ export const Trace: LogLevel = core.logLevelTrace
*/
export const None: LogLevel = core.logLevelNone

/**
* @since 2.0.0
* @category constructors
*/
export const Off: LogLevel = core.logLevelOff

/**
* @since 2.0.0
* @category constructors
Expand Down Expand Up @@ -277,6 +294,8 @@ export const fromLiteral = (literal: Literal): LogLevel => {
return Info
case "Trace":
return Trace
case "Off":
return Off
case "None":
return None
case "Warning":
Expand Down
14 changes: 13 additions & 1 deletion packages/effect/src/internal/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1678,6 +1678,17 @@ export const logLevelTrace: LogLevel.LogLevel = {
export const logLevelNone: LogLevel.LogLevel = {
_tag: "None",
syslog: 7,
label: "NONE",
ordinal: Number.MAX_SAFE_INTEGER,
pipe() {
return pipeArguments(this, arguments)
}
}

/** @internal */
export const logLevelOff: LogLevel.LogLevel = {
_tag: "Off",
syslog: 7,
label: "OFF",
ordinal: Number.MAX_SAFE_INTEGER,
pipe() {
Expand All @@ -1694,7 +1705,8 @@ export const allLogLevels: ReadonlyArray<LogLevel.LogLevel> = [
logLevelWarning,
logLevelError,
logLevelFatal,
logLevelNone
logLevelNone,
logLevelOff
]

// -----------------------------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions packages/effect/src/internal/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@ const colors = {

const logLevelColors: Record<LogLevel.LogLevel["_tag"], ReadonlyArray<string>> = {
None: [],
Off: [],
All: [],
Trace: [colors.gray],
Debug: [colors.blue],
Expand All @@ -312,6 +313,7 @@ const logLevelColors: Record<LogLevel.LogLevel["_tag"], ReadonlyArray<string>> =
}
const logLevelStyle: Record<LogLevel.LogLevel["_tag"], string> = {
None: "",
Off: "",
All: "",
Trace: "color:gray",
Debug: "color:blue",
Expand Down
1 change: 1 addition & 0 deletions packages/effect/test/LogLevel.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ describe("LogLevel", () => {
strictEqual(LogLevel.fromLiteral("Fatal"), LogLevel.Fatal)
strictEqual(LogLevel.fromLiteral("Info"), LogLevel.Info)
strictEqual(LogLevel.fromLiteral("None"), LogLevel.None)
strictEqual(LogLevel.fromLiteral("Off"), LogLevel.Off)
strictEqual(LogLevel.fromLiteral("Trace"), LogLevel.Trace)
strictEqual(LogLevel.fromLiteral("Warning"), LogLevel.Warning)
})
Expand Down