# Phenix Web SDK

## Using logger functionality
Phenix Web SDK gives a lot of possibilities to manage the logging functionality.
You can set the level of logging. Turn logging of or manage the level of logging for different type of log appenders.

### Manage logging functionality on pre-init

#### Turn off logging
There are multiple ways to turn off logging.
To turn off logging, you can add a meta tag to the head of the web page that loads the SDK:
```
    <meta name="phenix-logging-level" value="Off"/>
```
Or if you want to turn off only logging to the console, you can specifically disable the console logger:
```
    <meta name="phenix-console-logging-level" value="Off"/>
```

For debugging purposes, you can enable URI parameter parsing which enables you to control logging via URI parameters.
To turn off logger from query parameter:
```
    <meta name="phenix-logging-level-uri-parmeter-name" value="logLevel"/>
```
And then add the query parameter to the URL `?logLevel=Off`.
Or turn off only `console.log` functionality of the logger:
```
    <meta name="phenix-console-logging-level-uri-parameter-name" value="consoleLogLevel"/>
```
And then add the query parameter to the URL `?consoleLogLevel=Off`


#### Controlling the log levels
The same way you control disabling logs, you can use to set the custom log threshold with the following levels:
```
  All,
  Trace,
  Debug,
  Info,
  Warn,
  Error,
  Fatal,
```
If you set `All`, you will get all logs. If you set `Info`, you will get `Info` and all logs with higher severity: `Warn`, `Error`, `Fatal`.
Example setting the log threshold to `Error` and higher severity:

##### For all log appenders
```
    <meta name="phenix-logging-level" value="Error"/>
```
Or using query parameters:
```
    <meta name="phenix-logging-level-uri-parmeter-name" value="logLevel"/>
```
And then add the query parameter to the URL `?logLevel=Error`

##### Specifically for the console log appender
```
    <meta name="phenix-console-logging-level" value="Error"/>
```
Or using query parameters:
```
    <meta name="phenix-console-logging-level-uri-parameter-name" value="consoleLogLevel"/>
```
And add query parameter to the url `consoleLogLevel=Error`

### Manage logging functionality after pre-init

#### Turn off logging
To turn of logging after pre-init, you can use SDK.init function:
```
    phenix.SDK.init({
        loggingLevel: 'Off'
    });
```
Or if you want to turn off only logging to the console, you can specifically disable the console logger:
```
    phenix.SDK.init({
        consoleLoggingLevel: 'Off'
    });
```

#### Controlling the log levels
For all log appenders:
```
    phenix.SDK.init({
        loggingLevel: 'Error'
    });
```
Specifically for the console log appender:
```
    phenix.SDK.init({
        consoleLoggingLevel: 'Error'
    });
```
Setting different levels for the console log appender and other appenders:
```
    phenix.SDK.init({
        loggingLevel: 'Info',
        consoleLoggingLevel: 'Error'
    });
```
