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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Sif4j, Помогите сделать логгер 
:(
    Опции темы
Felixx
Дата 11.11.2011, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем привет, решил избавиться от обычного log4j, хотелось бызаюзаьб sif4j+log4j.


Код

slf4j-log4j12-1.6.4.jar
slf4j-api-1.6.4.jar
log4j-1.2.16.jar



Код

private static final Logger _log = LoggerFactory.getLogger(DataBaseConfig.class);


В самом начале работы консоли вылазиет
Код

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/H:/_Server/MY/pb/branches/javaserver/dist/pb_
auth/libs/slf4j-log4j12-1.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/H:/_Server/MY/pb/branches/javaserver/dist/pb_
auth/libs/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

И это при том что Log4l.xml и log4j.dtd
находятся рыдом с батником..
Раптше они были в обном в паетке 
Код
 ===>> Так было когда в пакете все валялось. НО теперь там url == null почемуто
ru.pb.global.logging
Log4l.xml
log4j.dtd


Код

try
        {
            URL url = LoggingService.class.getResource("log4j.xml");
            DOMConfigurator.configure(url);
        }
        catch(Exception e)
        {
            return;
        }


[code=java]
Если же из вернуть на место то выдет слежующее:

Код

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/H:/_Server/MY/pb/branches/javaserver/dist/pb_
auth/libs/slf4j-log4j12-1.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/H:/_Server/MY/pb/branches/javaserver/dist/pb_
auth/libs/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

log4j:WARN No appenders could be found for logger (ru.pb.global.info.PrintInfo).

log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.


Для продолжения нажмите любую клавишу . . .

Прога стартует так: 

Код

public static void main(String... args) throws Exception
    {
        PrintInfo.getInstance();

        LoggingService.load();
Код




LoggingServise:

Код

public class LoggingService
{
    public static void load()
    {
        File logDir = new File("./log/");

        if( !logDir.exists())
        {
            logDir.mkdir();
        }

        try
        {
            URL url = LoggingService.class.getResource("log4j.xml");
            DOMConfigurator.configure(url);
        }
        catch(Exception e)
        {
            return;
        }

        overrideDefaultLoggerFactory();

        Logger logger = LogManager.getLogManager().getLogger("");
        for(Handler h : logger.getHandlers())
        {
            logger.removeHandler(h);
        }

        logger.addHandler(new JuliToLog4JHandler());
    }

    private static void overrideDefaultLoggerFactory()
    {
        // Hack here, we have to overwrite default logger factory
        Hierarchy lr = (Hierarchy) org.apache.log4j.LogManager.getLoggerRepository();
        try
        {
            Field field = lr.getClass().getDeclaredField("defaultFactory");
            field.setAccessible(true);
            String cn = System.getProperty("log4j.loggerfactory", ThrowableAsMessageAwareFactory.class.getName());
            Class<?> c = Class.forName(cn);
            field.set(lr, c.newInstance());
            field.setAccessible(false);
        }
        catch(NoSuchFieldException e)
        {
            // never thrown
            e.printStackTrace();
        }
        catch(IllegalAccessException e)
        {
            // never thrown
            e.printStackTrace();
        }
        catch(ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        catch(InstantiationException e)
        {
            e.printStackTrace();
        }
    }
}



Подскажите кто чем соможет, ила дайте како ни ь примеци не большой...
Ине нужно при остановке. запуске млхранять логи обшибок и логи консоли отдельно, плюс хранить бакапы старые в ZIPв отдельной папке.
Заранее спасибо








6

Это сообщение отредактировал(а) Felixx - 11.11.2011, 23:51
PM MAIL   Вверх
jk1
Дата 11.11.2011, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/H:/_Server/MY/pb/branches/javaserver/dist/pb_
auth/libs/slf4j-log4j12-1.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/H:/_Server/MY/pb/branches/javaserver/dist/pb_
auth/libs/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]

Уберите из Classpath одну из библиотек, либо slf4j-log4j12-1.6.2.jar, либо slf4j-log4j12-1.6.4.jar.
SLF4J использует адаптеры под конкретные логгеры, в Вашем случае под Log4J. Если в classpath одновременно находятся несколько таких адаптеров, то SLF4J нормально работать не сможет.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Felixx
Дата 12.11.2011, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Огроиное человеческое спасибо! помогло!!

Оставил только
    <classpathentry exported="true" kind="lib" path="libs/slf4j-api-1.6.4.jar"/>
    <classpathentry exported="true" kind="lib" path="libs/log4j-1.2.16.jar"/>

Добавлено @ 00:14
НО теперь фишка, поместил Log4j и log4.dtd обртко в пекет....

пишет
Код

log4j:WARN No appenders could be found for logger (ru.pb.global.info.PrintInfo).

log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.


А если вынуть к батнику то все здорово! с чем это связано?
как я понимаю 

Код

        try
        {
            URL url = LoggingService.class.getResource("log4j.xml");
            System.out.println("url: " + url); ======= >>>> NULL пачиму?(
            DOMConfigurator.configure(url);
        }


Это сообщение отредактировал(а) Felixx - 12.11.2011, 00:16
PM MAIL   Вверх
Felixx
Дата 12.11.2011, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хеллп ми плиз.. Вообще мозг кипит уже. и ничего не получаетса.
PM MAIL   Вверх
Felixx
Дата 12.11.2011, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



АСЯ 919292

Это сообщение отредактировал(а) Felixx - 12.11.2011, 18:05
PM MAIL   Вверх
Felixx
Дата 14.11.2011, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Разобралса, при билде не корипоаплись log4j.xml, и log4j.dtd

поэтому в пакете 
Код

package ru.pb.global.logging;


небыло файлов log4j.xml, и log4j.dtd. приходилось их лодить к батнику.

Пришлось сдлелать так:
Код

<target name="compile" depends="dirs" description="Compile the source." >
        <copy todir="${build.classes}/ru/pb/global/logging">
            <fileset dir="${src}/ru/pb/global/logging">
                <include name="log4j.xml"/>
                <include name="log4j.dtd"/>
            </fileset>
        </copy>


Но там описывалост сожранение фйлов лгов и ерроров от Log4j...
Это разве нормально? Просто впихать 2 либы и наслождаьбся чем есть, только использоать петерь тпеин импорты? 

Код

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


Или я что то не допонимаю))? Может что то надо переписывать или оставлять как есть?

Это сообщение отредактировал(а) Felixx - 14.11.2011, 00:42
PM MAIL   Вверх
Felixx
Дата 14.11.2011, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И Зачем собственно файл log4j.dtd

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

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

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


 




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


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

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