# JSLogger

## Overview

The `JSLogger` class provides a comprehensive API for managing logging operations. It supports constructing log events with various severity levels, such as fatal, error, warn, info, debug, and trace, using the `JSLogBuilder` instances it creates. Logs can include messages formatted with arguments, enabling flexible and detailed logging. The class offers methods to check if a specific logging level is enabled, allowing efficient logging decisions. It also allows dynamically setting the logger's logging level, overriding the default configuration. This global change persists until the application server is restarted. The current logging level can be retrieved as a string using the `level` property.

## Properties Summarized

| Type                                                                      | Name                          | Summary                                                                         |
| ------------------------------------------------------------------------- | ----------------------------- | ------------------------------------------------------------------------------- |
| [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) | [always](#always)             | Construct a log event that will always be logged.                               |
| [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) | [debug](#debug)               | Construct a debug log event.                                                    |
| [Boolean](/reference/servoycore/dev-api/js-lib/boolean.md)                | [debugEnabled](#debugenabled) | Check if the current logger's logging level enables logging on the debug level. |
| [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) | [error](#error)               | Construct an error log event.                                                   |
| [Boolean](/reference/servoycore/dev-api/js-lib/boolean.md)                | [errorEnabled](#errorenabled) | Check if the current logger's logging level enables logging on the error level. |
| [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) | [fatal](#fatal)               | Construct a fatal log event.                                                    |
| [Boolean](/reference/servoycore/dev-api/js-lib/boolean.md)                | [fatalEnabled](#fatalenabled) | Check if the current logger's logging level enables logging on the fatal level. |
| [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) | [info](#info)                 | Construct an info log event.                                                    |
| [Boolean](/reference/servoycore/dev-api/js-lib/boolean.md)                | [infoEnabled](#infoenabled)   | Check if the current logger's logging level enables logging on the info level.  |
| [String](/reference/servoycore/dev-api/js-lib/string.md)                  | [level](#level)               | Get the logging level of this logger                                            |
| [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) | [trace](#trace)               | Construct a trace log event.                                                    |
| [Boolean](/reference/servoycore/dev-api/js-lib/boolean.md)                | [traceEnabled](#traceenabled) | Check if the current logger's logging level enables logging on the trace level. |
| [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) | [warn](#warn)                 | Construct a warn log event.                                                     |
| [Boolean](/reference/servoycore/dev-api/js-lib/boolean.md)                | [warnEnabled](#warnenabled)   | Check if the current logger's logging level enables logging on the warn level.  |

## Methods Summarized

| Type | Name                               | Summary                                                           |
| ---- | ---------------------------------- | ----------------------------------------------------------------- |
| void | [setLevel(level)](#setlevel-level) | Set the level for this logger.                                    |
| void | [setLevel(level)](#setlevel-level) | Set the level for this logger by using the LOGGINGLEVEL constant. |

## Properties Detailed

### always

Construct a log event that will always be logged.

**Type**\
[JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) a LogBuilder

**Sample**

```js
var log = application.getLogger();
log.always.log("some message and {} {}", "some", "arguments");
```

### debug

Construct a debug log event.

**Type**\
[JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) a LogBuilder

**Sample**

```js
var log = application.getLogger();
log.debug.log("some message and {} {}", "some", "arguments");
```

### debugEnabled

Check if the current logger's logging level enables logging on the debug level.\
Return true if the logger's level is set to debug or trace.

**Type**\
[Boolean](/reference/servoycore/dev-api/js-lib/boolean.md) true if 'debug' level is enabled for logging

### error

Construct an error log event.

**Type**\
[JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) a LogBuilder

**Sample**

```js
var log = application.getLogger();
log.error.log("some message and {} {}", "some", "arguments");
```

### errorEnabled

Check if the current logger's logging level enables logging on the error level.\
Return true if the logger's level is set to error, warn, info, debug or trace.

**Type**\
[Boolean](/reference/servoycore/dev-api/js-lib/boolean.md) true if 'error' level is enabled for logging

### fatal

Construct a fatal log event.

**Type**\
[JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) a LogBuilder

**Sample**

```js
var log = application.getLogger();
log.fatal.log("some message and {} {}", "some", "arguments");
```

### fatalEnabled

Check if the current logger's logging level enables logging on the fatal level.\
Return true if the logger's level is set to fatal, error, warn, info, debug or trace.

**Type**\
[Boolean](/reference/servoycore/dev-api/js-lib/boolean.md) true if 'fatal' level is enabled for logging

### info

Construct an info log event.

**Type**\
[JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) a LogBuilder

**Sample**

```js
var log = application.getLogger();
log.info.log("some message and {} {}", "some", "arguments");
```

### infoEnabled

Check if the current logger's logging level enables logging on the info level.\
Return true if the logger's level is set to info, debug or trace.

**Type**\
[Boolean](/reference/servoycore/dev-api/js-lib/boolean.md) true if 'info' level is enabled for logging

### level

Get the logging level of this logger

**Type**\
[String](/reference/servoycore/dev-api/js-lib/string.md) the logging level of this logger

### trace

Construct a trace log event.

**Type**\
[JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) a LogBuilder

**Sample**

```js
var log = application.getLogger();
log.trace.log("some message and {} {}", "some", "arguments");
```

### traceEnabled

Check if the current logger's logging level enables logging on the trace level.\
Return true if the logger's level is set to trace.

**Type**\
[Boolean](/reference/servoycore/dev-api/js-lib/boolean.md) true if 'trace' level is enabled for logging

### warn

Construct a warn log event.

**Type**\
[JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) a LogBuilder

**Sample**

```js
var log = application.getLogger();
log.warn.log("some message and {} {}", "some", "arguments");
```

### warnEnabled

Check if the current logger's logging level enables logging on the warn level.\
Return true if the logger's level is set to warn, info, debug or trace.

**Type**\
[Boolean](/reference/servoycore/dev-api/js-lib/boolean.md) true if 'warn' level is enabled for logging

## Methods Detailed

### setLevel(level)

Set the level for this logger.\
Be aware that this will override the logging level as configured in log4j.xml,\
meaning it affects all JSLogger instances based on that configuration.\
This changes the global configuration,\
meaning that restarting the client will not reset the logging level to it's default state.\
Only restarting the application server will reset the logging level to it's default state.

**Parameters**

* [JSLogBuilder](/reference/servoycore/dev-api/application/jslogbuilder.md) **level** the desired logging level for this logger

**Returns:** void

**Sample**

```js
var log = application.getLogger("myLogger");
log.setLevel(log.info);
```

### setLevel(level)

Set the level for this logger by using the LOGGINGLEVEL constant.\
Be aware that this will override the logging level as configured in log4j.xml,\
meaning it affects all JSLogger instances based on that configuration.\
This changes the global configuration,\
meaning that restarting the client will not reset the logging level to it's default state.\
Only restarting the application server will reset the logging level to it's default state.

**Parameters**

* [Number](/reference/servoycore/dev-api/js-lib/number.md) **level** the desired logging level for this logger

**Returns:** void

**Sample**

```js
var log = application.getLogger("myLogger");
log.setLevel(LOGGINGLEVEL.DEBUG);
```

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.servoy.com/reference/servoycore/dev-api/application/jslogger.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
