Skip to content

Commit 0c51cbd

Browse files
committed
Implemented new 'Off' LogLevel that works the exact same way as LogLevel.None
1 parent 77f803e commit 0c51cbd

File tree

5 files changed

+41
-2
lines changed

5 files changed

+41
-2
lines changed

.changeset/three-zoos-enter.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
Added new 'Off' LogLevel that works the exact same way as LogLevel.None

packages/effect/src/LogLevel.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import type { Pipeable } from "./Pipeable.js"
2020
* @property label - A label associated with the log level.
2121
* @property syslog -The syslog severity level of the log level.
2222
*/
23-
export type LogLevel = All | Fatal | Error | Warning | Info | Debug | Trace | None
23+
export type LogLevel = All | Fatal | Error | Warning | Info | Debug | Trace | None | Off
2424

2525
/**
2626
* @since 2.0.0
@@ -111,6 +111,17 @@ export interface Trace extends Pipeable {
111111
*/
112112
export interface None extends Pipeable {
113113
readonly _tag: "None"
114+
readonly label: "NONE"
115+
readonly syslog: 7
116+
readonly ordinal: number
117+
}
118+
119+
/**
120+
* @since 2.0.0
121+
* @category model
122+
*/
123+
export interface Off extends Pipeable {
124+
readonly _tag: "Off"
114125
readonly label: "OFF"
115126
readonly syslog: 7
116127
readonly ordinal: number
@@ -164,6 +175,12 @@ export const Trace: LogLevel = core.logLevelTrace
164175
*/
165176
export const None: LogLevel = core.logLevelNone
166177

178+
/**
179+
* @since 2.0.0
180+
* @category constructors
181+
*/
182+
export const Off: LogLevel = core.logLevelOff
183+
167184
/**
168185
* @since 2.0.0
169186
* @category constructors
@@ -277,6 +294,8 @@ export const fromLiteral = (literal: Literal): LogLevel => {
277294
return Info
278295
case "Trace":
279296
return Trace
297+
case "Off":
298+
return Off
280299
case "None":
281300
return None
282301
case "Warning":

packages/effect/src/internal/core.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1678,6 +1678,17 @@ export const logLevelTrace: LogLevel.LogLevel = {
16781678
export const logLevelNone: LogLevel.LogLevel = {
16791679
_tag: "None",
16801680
syslog: 7,
1681+
label: "NONE",
1682+
ordinal: Number.MAX_SAFE_INTEGER,
1683+
pipe() {
1684+
return pipeArguments(this, arguments)
1685+
}
1686+
}
1687+
1688+
/** @internal */
1689+
export const logLevelOff: LogLevel.LogLevel = {
1690+
_tag: "Off",
1691+
syslog: 7,
16811692
label: "OFF",
16821693
ordinal: Number.MAX_SAFE_INTEGER,
16831694
pipe() {
@@ -1694,7 +1705,8 @@ export const allLogLevels: ReadonlyArray<LogLevel.LogLevel> = [
16941705
logLevelWarning,
16951706
logLevelError,
16961707
logLevelFatal,
1697-
logLevelNone
1708+
logLevelNone,
1709+
logLevelOff
16981710
]
16991711

17001712
// -----------------------------------------------------------------------------

packages/effect/src/internal/logger.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ const colors = {
302302

303303
const logLevelColors: Record<LogLevel.LogLevel["_tag"], ReadonlyArray<string>> = {
304304
None: [],
305+
Off: [],
305306
All: [],
306307
Trace: [colors.gray],
307308
Debug: [colors.blue],
@@ -312,6 +313,7 @@ const logLevelColors: Record<LogLevel.LogLevel["_tag"], ReadonlyArray<string>> =
312313
}
313314
const logLevelStyle: Record<LogLevel.LogLevel["_tag"], string> = {
314315
None: "",
316+
Off: "",
315317
All: "",
316318
Trace: "color:gray",
317319
Debug: "color:blue",

packages/effect/test/LogLevel.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ describe("LogLevel", () => {
1010
strictEqual(LogLevel.fromLiteral("Fatal"), LogLevel.Fatal)
1111
strictEqual(LogLevel.fromLiteral("Info"), LogLevel.Info)
1212
strictEqual(LogLevel.fromLiteral("None"), LogLevel.None)
13+
strictEqual(LogLevel.fromLiteral("Off"), LogLevel.Off)
1314
strictEqual(LogLevel.fromLiteral("Trace"), LogLevel.Trace)
1415
strictEqual(LogLevel.fromLiteral("Warning"), LogLevel.Warning)
1516
})

0 commit comments

Comments
 (0)