powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Log4j в разные файлы
10 сообщений из 35, страница 2 из 2
Log4j в разные файлы
    #38798333
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДва часа браток. Два часа. Давай API в зубы и Go! Go!
спасибо.
аппендер сделал но что с ним дальше творить не понял.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
public class BeepAppender extends AppenderSkeleton {

    @Override
    protected void append(LoggingEvent event) {
        String path = "/var/www/o/log/";
        String s  = (String) event.getMessage();
        String[] strings = s.split(" ");
        File file = new File(path + strings[10]);
        if(!file.exists()) {
            try {
                file.createNewFile();
                PrintWriter out = null;
                out = new PrintWriter(file.getAbsoluteFile());
                out.print(s);
               
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else {
            try {
                RandomAccessFile rfile = new RandomAccessFile(path + strings[10], "rw");
                rfile.writeBytes(s + "\n");
                rfile.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public void close() {

    }

    @Override
    public boolean requiresLayout() {
        return false;
    }
}


вот собственно аппендер,
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38798336
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕлдосmaytonДва часа браток. Два часа. Давай API в зубы и Go! Go!
спасибо.
аппендер сделал но что с ним дальше творить не понял.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
public class BeepAppender extends AppenderSkeleton {

    @Override
    protected void append(LoggingEvent event) {
        String path = "/var/www/o/log/";
        String s  = (String) event.getMessage();
        String[] strings = s.split(" ");
        File file = new File(path + strings[10]);
        if(!file.exists()) {
            try {
                file.createNewFile();
                PrintWriter out = null;
                out = new PrintWriter(file.getAbsoluteFile());
                out.print(s);
               
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else {
            try {
                RandomAccessFile rfile = new RandomAccessFile(path + strings[10], "rw");
                rfile.writeBytes(s + "\n");
                rfile.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public void close() {

    }

    @Override
    public boolean requiresLayout() {
        return false;
    }
}


вот собственно аппендер,
не ругайтесь сильно, еще не тестировал, и пока только примерно представляю как это работает.
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38798360
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RandomAccessFile не нужен.
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38798373
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonRandomAccessFile не нужен.
это почему?
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38798438
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕлдосmaytonRandomAccessFile не нужен.
это почему?
как и куда потом эти логи?
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38798471
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Елдоспропущено...

это почему?
как и куда потом эти логи?
на одну сессию один лог файл, этот лог останется пока я сам не удалю.
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38798632
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕлдосmaytonRandomAccessFile не нужен.
это почему?
Для задач записи текста в текстовый файл достаточно PrintWriter.
Особенно с указанием опции кодовой страницы.

RandomAccess - для произвольного позиционирования (обычно в двоичных)
структурированных.
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38799722
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕлдоспропущено...

это почему?
Для задач записи текста в текстовый файл достаточно PrintWriter.
Особенно с указанием опции кодовой страницы.

RandomAccess - для произвольного позиционирования (обычно в двоичных)
структурированных.
Понятно спасибо
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38799752
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо log4j взять logback. Он умеет так делать из коробки.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
    <appender name="FILE_PER_SESSION" class="ch.qos.logback.classic.sift.SiftingAppender">
        <timeout>5</timeout>
        <discriminator>
            <key>session</key>
            <defaultValue>all</defaultValue>
        </discriminator>
        <sift>
            <appender name="FILE-${session}" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <file>${catalina.base}/logs/rssfrontend/${session}.log</file>
                <append>true</append>
                <layout>
                    <pattern>[%-5level] %date{HH:mm:ss.SSS} %logger{36} %msg%n</pattern>
                </layout>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>${catalina.base}/logs/rssfrontend/${session}.%d{yyyy-MM-dd}.log</fileNamePattern>
                    <maxHistory>15</maxHistory>
                </rollingPolicy>
            </appender>
        </sift>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE"/>
        <appender-ref ref="FILE_PER_SESSION"/>
    </root>



Кстати, мне почему-то кажется, и log4j должен уметь такое.
...
Рейтинг: 0 / 0
Log4j в разные файлы
    #38800279
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvВместо log4j взять logback. Он умеет так делать из коробки.
А оно точно будет работать?
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Log4j в разные файлы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]