Skip to content

Latest commit

 

History

History
66 lines (43 loc) · 3.2 KB

logging.md

File metadata and controls

66 lines (43 loc) · 3.2 KB
Ktor uses SLF4J API as a facade for various logging frameworks (for example, Logback or Log4j) and allows you to log application events.

Ktor uses SLF4J API as a facade for various logging frameworks (for example, Logback or Log4j) and allows you to log application events. To enable logging, you need to add dependencies for the desired framework and provide configuration specific for this framework.

You can also install and configure the CallLogging plugin to log client requests.

Add logger dependencies {id="add_dependencies"}

To enable logging, you need to include artifacts for the desired logging framework. For example, Logback requires the following dependency:

To use Log4j, you need to add the org.apache.logging.log4j:log4j-core and org.apache.logging.log4j:log4j-slf4j-impl artifacts.

Configure logger {id="configure-logger"}

To learn how to configure the selected logging framework, see its documentation, for example:

For instance, to configure Logback, you need to put a logback.xml file in the root of the classpath (for example, in src/main/resources). The example below shows a sample Logback configuration with the STDOUT appender, which outputs logs to the console.

{style="block" src="snippets/logging/src/main/resources/logback.xml"}

If you want to output logs to a file, you can use the FILE appender.

{style="block" src="snippets/logging/src/main/resources/logback-fileAppender.xml"}

You can find the full example here: logging.

Access logger in code {id="access_logger"}

The Logger instance is represented by a class that implements the Logger interface. You can access the Logger instance inside the Application using the Application.log property. For example, the code snippet below shows how to add a message to a log inside the module.

{src="snippets/logging/src/main/kotlin/com/example/Application.kt" lines="12-13,35"}

You can also access the Logger from ApplicationCall using the call.application.environment.log property.

{src="snippets/logging/src/main/kotlin/com/example/Application.kt" lines="26-28,30,34"}

To enable logging of client requests, you can use the CallLogging plugin.