# TestLogger

Exposes an AlgoKit logger which captures log messages, while wrapping an original logger. This is useful for automated testing.

## Implements

- [`Logger`](https://dev.algorand.co/reference/algokit-utils-ts/api/modules/types_logging/#logger)

## Table of contents

### Constructors

- [constructor](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#constructor)

### Properties

- [logs](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#logs)
- [originalLogger](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#originallogger)

### Accessors

- [capturedLogs](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#capturedlogs)

### Methods

- [clear](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#clear)
- [debug](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#debug)
- [error](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#error)
- [getLogSnapshot](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#getlogsnapshot)
- [info](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#info)
- [verbose](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#verbose)
- [warn](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/#warn)

## Constructors

### constructor

• **new TestLogger**(`originalLogger?`): [`TestLogger`](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/)

Create a new test logger that wraps the given logger if provided.

#### Parameters

| Name                    | Type                                             | Description                                                        |
| :--                     | :--                                              | :--                                                            |
| `originalLogger?` | [`Logger`](https://dev.algorand.co/reference/algokit-utils-ts/api/modules/types_logging/#logger) | The optional original logger to wrap.                             |

#### Returns

[`TestLogger`](https://dev.algorand.co/reference/algokit-utils-ts/api/classes/testingtestlogger/)

#### Defined in

[src/testing/test-logger.ts:16](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L16)

## Properties

### logs

• `Private` **logs**: `string`\[

#### Defined in

[src/testing/test-logger.ts:10](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L10)

### originalLogger

• `Private` **originalLogger**: `undefined` \| [`Logger`](https://dev.algorand.co/reference/algokit-utils-ts/api/modules/types_logging/#logger)

#### Defined in

[src/testing/test-logger.ts:9](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L9)

## Accessors

### capturedLogs

• `get` **capturedLogs**(): `string`\[

Returns all logs captured thus far.

#### Returns

`string`\[

#### Defined in

[src/testing/test-logger.ts:22](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L22)

## Methods

### clear

▸ **clear**(): `void`

Clears all logs captured so far.

#### Returns

`void`

#### Defined in

[src/testing/test-logger.ts:27](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L27)

### debug

▸ **debug**(`message`, `...optionalParams`): `void`

#### Parameters

| Name                    | Type    |
| :--                     | :--     |
| `message`              | `string`|
| `...optionalParams` | `unknown`\[

#### Returns

`void`

#### Implementation of

Logger.debug

#### Defined in

[src/testing/test-logger.ts:89](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L89)

### error

▸ **error**(`message`, `...optionalParams`): `void`

#### Parameters

| Name                    | Type    |
| :--                     | :--     |
| `message`              | `string`|
| `...optionalParams` | `unknown`\[

#### Returns

`void`

#### Implementation of

Logger.error

#### Defined in

[src/testing/test-logger.ts:73](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L73)

### getLogSnapshot

▸ **getLogSnapshot**(`config?`): `string`

Returns a captured log snapshot. This helps ensure that the provided configuration items won’t appear with random values in the log snapshot, but rather will get substituted with predictable ids.

#### Parameters

| Name     | Type                                                                   | Description                                   |
| :--      | :--                                                                    | :--                                           |
| `config?`| [`LogSnapshotConfig`](https://dev.algorand.co/reference/algokit-utils-ts/api/interfaces/types_testinglogsnapshotconfig/) | The snapshot configuration                     |

#### Returns

`string`

The snapshotted logs.

**`Example`**

```typescript
const logger = new TestLogger()

...

expect(logger.getLogSnapshot()).toMatchSnapshot()
```

#### Defined in

[src/testing/test-logger.ts:47](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L47)

### info

▸ **info**(`message`, `...optionalParams`): `void`

#### Parameters

| Name                    | Type    |
| :--                     | :--     |
| `message`              | `string`|
| `...optionalParams` | `unknown`\[

#### Returns

`void`

#### Implementation of

Logger.info

#### Defined in

[src/testing/test-logger.ts:81](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L81)

### verbose

▸ **verbose**(`message`, `...optionalParams`): `void`

#### Parameters

| Name                    | Type    |
| :--                     | :--     |
| `message`              | `string`|
| `...optionalParams` | `unknown`\[

#### Returns

`void`

#### Implementation of

Logger.verbose

#### Defined in

[src/testing/test-logger.ts:85](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L85)

### warn

▸ **warn**(`message`, `...optionalParams`): `void`

#### Parameters

| Name                    | Type    |
| :--                     | :--     |
| `message`              | `string`|
| `...optionalParams` | `unknown`\[

#### Returns

`void`

#### Implementation of

Logger.warn

#### Defined in

[src/testing/test-logger.ts:77](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L77)
