Это старая версия документа!
Для использования функционала logback нужны доп модули, поэтому нужно ставить зависимости
В данном примере для установки зависимостей используется Maven
Формируется манифест, итог нужно компилировать в jar файл, включая зависимости
src/main/java/TestLog.java
package com.example; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestLog{ public static final Logger logger = LoggerFactory.getLogger(TestLog.class); public static void main(String[] args){ System.out.println("Hello world"); logger.info("==== Start program ===="); for (int i=0; i != 100; i += 1){ logger.info("{} - write ro log in loop", i); } } }
src/main/recources/logback.xml
<?xml version="1.0" encoding="UTF-8" ?> <configuration scan="true" scanPeriod="5 seconds" debug="true"> <appender name="ConsoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <target>System.out</target> <encoder> <pattern>%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n </pattern> </encoder> </appender> <appender name="TestLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>log/test_log.log</file> <append>true</append> <encoder> <pattern>%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n </pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>log/test_log-%d{yyyy-MM-dd}.%i.zip</fileNamePattern> <maxFileSize>200KB</maxFileSize> </rollingPolicy> </appender> <root level="DEBUG"> <appender-ref ref="TestLogAppender"/> <appender-ref ref="ConsoleAppender"/> </root> </configuration>
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>TestLog</artifactId> <version>1.2-SNAPSHOT</version> <name>TestLog</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.7</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <archive> <manifest> <mainClass>com.example.TestLog</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build> </project>
На выходе, собранная джарка включает в себя все подключенные пакеты, файлы «*.class», logback.xml, в корне, манифест