> ## Documentation Index
> Fetch the complete documentation index at: https://docs.faremeter.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Logs Package

> Structured logging system with pluggable backends

# logs/src

## Interfaces

### ConfigureAppArgs

Defined in: [packages/logs/src/index.ts:23](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/index.ts#L23)

Configuration options for initializing the logging system.

#### Properties

##### backend?

> `optional` **backend**: [`LoggingBackend`](#loggingbackend)\<`BaseConfigArgs`>

Defined in: [packages/logs/src/index.ts:27](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/index.ts#L27)

Backend implementation to use. Auto-detected if not provided.

##### level?

> `optional` **level**: `"error"` | `"info"` | `"trace"` | `"debug"` | `"warning"` | `"fatal"`

Defined in: [packages/logs/src/index.ts:25](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/index.ts#L25)

Minimum log level to emit. Defaults to `"info"`.

***

### Logger

Defined in: [packages/logs/src/types.ts:19](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L19)

#### Methods

##### debug()

> **debug**(...`args`): `void`

Defined in: [packages/logs/src/types.ts:20](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L20)

###### Parameters

###### args

...[`LogArgs`](#logargs)

###### Returns

`void`

##### error()

> **error**(...`args`): `void`

Defined in: [packages/logs/src/types.ts:23](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L23)

###### Parameters

###### args

...[`LogArgs`](#logargs)

###### Returns

`void`

##### fatal()

> **fatal**(...`args`): `void`

Defined in: [packages/logs/src/types.ts:24](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L24)

###### Parameters

###### args

...[`LogArgs`](#logargs)

###### Returns

`void`

##### info()

> **info**(...`args`): `void`

Defined in: [packages/logs/src/types.ts:21](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L21)

###### Parameters

###### args

...[`LogArgs`](#logargs)

###### Returns

`void`

##### warning()

> **warning**(...`args`): `void`

Defined in: [packages/logs/src/types.ts:22](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L22)

###### Parameters

###### args

...[`LogArgs`](#logargs)

###### Returns

`void`

***

### LoggingBackend

Defined in: [packages/logs/src/types.ts:37](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L37)

Backend implementation for the logging system.

Backends handle log output destinations (console, file, external service)
and can be swapped at runtime via [configureApp](#configureapp).

#### Type Parameters

##### TConfig

`TConfig` *extends* `BaseConfigArgs` = `BaseConfigArgs`

Configuration options for this backend.

#### Methods

##### configureApp()

> **configureApp**(`args`): `Promise`\<`void`>

Defined in: [packages/logs/src/types.ts:45](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L45)

Initializes the backend with the given configuration.

###### Parameters

###### args

`TConfig`

Backend-specific configuration including minimum log level.

###### Returns

`Promise`\<`void`>

##### getLogger()

> **getLogger**(`subsystem`): [`Logger`](#logger)

Defined in: [packages/logs/src/types.ts:53](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L53)

Creates a logger scoped to a subsystem hierarchy.

###### Parameters

###### subsystem

readonly `string`\[]

Hierarchical category for the logger (e.g., `["faremeter", "client"]`).

###### Returns

[`Logger`](#logger)

A logger instance for the specified subsystem.

## Type Aliases

### Context

> **Context** = `Record`\<`string`, `unknown`>

Defined in: [packages/logs/src/types.ts:16](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L16)

***

### LogArgs

> **LogArgs** = \[`string`, [`Context`](#context)]

Defined in: [packages/logs/src/types.ts:17](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L17)

***

### LogLevel

> **LogLevel** = *typeof* [`LogLevels`](#loglevels)\[`number`]

Defined in: [packages/logs/src/types.ts:10](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L10)

## Variables

### ConsoleBackend

> `const` **ConsoleBackend**: [`LoggingBackend`](#loggingbackend)

Defined in: [packages/logs/src/console.ts:22](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/console.ts#L22)

Logging backend that outputs to the browser or Node.js console.

This is the default fallback backend when logtape is not available.
It uses native `console.debug`, `console.info`, `console.warn`, and
`console.error` methods for output.

***

### LogLevels

> `const` **LogLevels**: readonly \[`"trace"`, `"debug"`, `"info"`, `"warning"`, `"error"`, `"fatal"`]

Defined in: [packages/logs/src/types.ts:1](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/types.ts#L1)

## Functions

### configureApp()

> **configureApp**(`args`): `Promise`\<`void`>

Defined in: [packages/logs/src/index.ts:58](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/index.ts#L58)

Initializes the global logging system.

Call this once at application startup to configure the log level and backend.
If no backend is specified, logtape is used when available, otherwise falls
back to console output.

#### Parameters

##### args

[`ConfigureAppArgs`](#configureappargs) = `{}`

Configuration options for level and backend.

#### Returns

`Promise`\<`void`>

#### Example

```typescript theme={null}
await configureApp({ level: "debug" });
```

***

### getLogger()

> **getLogger**(`subsystem`): `Promise`\<[`Logger`](#logger)>

Defined in: [packages/logs/src/index.ts:78](https://github.com/faremeter/faremeter/blob/main/packages/logs/src/index.ts#L78)

Creates a logger for a specific subsystem.

The returned logger automatically adapts if the backend changes after
creation (e.g., when [configureApp](#configureapp-2) is called later).

#### Parameters

##### subsystem

readonly `string`\[]

Hierarchical category path for the logger.

#### Returns

`Promise`\<[`Logger`](#logger)>

A logger instance scoped to the subsystem.

#### Example

```typescript theme={null}
const logger = await getLogger(["faremeter", "client"]);
logger.info("Client initialized", { version: "1.0.0" });
```
