Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Составление logback.xml, Помогите плз 
V
    Опции темы
Felixx
  Дата 21.1.2013, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Привет всем, может кто то помоч, с составлением logback.xml ?
Вроде составил, но всеравно не так как надо бы...
Вот что у меня получилось:
Код

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>cp866</charset>
            <pattern>[%logger{0}] %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/console.log</file>
        <!--<append>true</append>-->
        <!--<prudent>true</prudent>-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/backup/console/%d{dd-MM-yyyy}/console-time-%d{HH-mm}.log-%i.zip</fileNamePattern>
            <maxHistory>30</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>1KB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <charset>utf-8</charset>
            <pattern>[%logger{0}] %msg%n</pattern>
        </encoder>
    </appender> 

    <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/errors.log</file>
        <!--<append>true</append>-->
        <!--<prudent>true</prudent>-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
           <level>ERROR</level>
           <onMatch>ACCEPT</onMatch>
           <onMismatch>DENY</onMismatch>
     </filter>
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
           <fileNamePattern>logs/backup/errors/%d{dd-MM-yyyy}/errors-time-%d{HH-mm}.log-%i.zip</fileNamePattern>
            <maxHistory>30</maxHistory>
         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
             <maxFileSize>1KB</maxFileSize>
         </timeBasedFileNamingAndTriggeringPolicy>    
     </rollingPolicy>
     <encoder>
           <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{0} - %msg%n</pattern>
     </encoder>
    </appender>             

    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <appender-ref ref="FILEERROR" />
    </root>
</configuration>


Щейчас получается что он логи пишет в один файл, и если он больше чем 1 килобайт, разбивает его на части, и каждый день свой лог файл, Хранится все это в отдельной папочке backup/console/%d{dd-MM-yyyy}/..... всего хранить логи за 30 дней... Если я конечно ничего не перепутал, и нигде не накосячил..
Но хотелось бы еще одно, если приложение перезапускается тоже так делать бекап того что было, под другим %i уже например.. тоесть надо бы хранить логи только одного запуска приложения а не куччу запусков в день..

Можно ли так сделать как то? Или придется писать свой аппендер, или ещо что то?
Может у кого уже есть, поделитесь плз?

Это сообщение отредактировал(а) Felixx - 21.1.2013, 21:10
PM MAIL   Вверх
Felixx
Дата 22.1.2013, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Хз, может кому понадобится когда - либо....
Правда теперь xml что выше, не актуальна.

Код

private static void initalizeLoggger() {
        File dir = new File("cache");
        deleteDirectory(dir);
        File[] files = new File("log").listFiles(new FilenameFilter() {

            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".log");
            }
        });

        if (files != null) {
            byte[] buf = new byte[1024];
            try {
                File file = new File("log/backup");
                file.mkdirs();
                String outFilename = "./log/backup/" + new SimpleDateFormat("yyyy-MM-dd HHmmss").format(new Date()) + ".zip";
                ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
                out.setMethod(ZipOutputStream.DEFLATED);
                out.setLevel(Deflater.BEST_COMPRESSION);

                for (File logFile : files) {
                    FileInputStream in = new FileInputStream(logFile);
                    out.putNextEntry(new ZipEntry(logFile.getName()));
                    int len;
                    while ((len = in.read(buf)) > 0) {
                        out.write(buf, 0, len);
                    }
                    out.closeEntry();
                    in.close();
                    logFile.delete();
                }
                out.close();
            } catch (IOException e) {
            }
        }
        LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
        try {
            JoranConfigurator configurator = new JoranConfigurator();
            configurator.setContext(lc);
            lc.reset();
            configurator.doConfigure("config/slf4j-logback.xml");
        } catch (JoranException je) {
            throw new RuntimeException("Failed to configure loggers, shutting down...", je);
        }

    }

Это сообщение отредактировал(а) Felixx - 22.1.2013, 12:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0699 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.