Инструменты пользователя

Инструменты сайта


develop:java:practics_overall

Это старая версия документа!


Practics_GUI

Логирование

:!: Пример с логированием. logback.xml

Для использования функционала 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, в корне, манифест

Over

:!: Минимальный пример

Вывод сообщения
файл TestLog.java

public class TestLog{
    public static final Logger logger = LoggerFactory.getLogger(TestLog.class);
 
    public static void main(String[] args){
        System.out.println("Hello world");
    }
}

Далее компилируем и запускаем

javac TestLog.jar
java TestLog
develop/java/practics_overall.1709384185.txt.gz · Последнее изменение: 2024/03/02 12:56 — admin