Логирование в L2J - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

Java В данном форуме вы сможете найти много полезной информации по платформе Java. Подробные статьи, исходные коды и конечно учебники как для новичков так и профессиональных Java разработчиков вы найдёте здесь. Если у вас есть вопрос или хотите поделится своими наработками, пожалуйста, делайте это в этой теме.

Ответ
Опции темы
Непрочитано 03.06.2013, 13:09   #11
Аватар для bloodshed
Герой

По умолчанию Re: Логирование в L2J

Цитата:
Сообщение от ALF. Посмотреть сообщение
ой сори, не то увидел. Всё ок.
п.с. затераю свой преыдущий текст Кто успел прочитать - тот поймет с чем я затупил)
в случае с String.format("%1$tH:%1$tM:%1$tS %2s %3s %4s %5s%n"
Будет использоваться другой метод (может ошибаюсь, копаться особо не охота):
java.util.Formatter.FormatSpecifier#printDateTime

        private void printDateTime(Object arg, Locale l) throws IOException {
            if (arg == null) {
                print("null");
                return;
            }
            Calendar cal = null;
 
            // Instead of Calendar.setLenient(true), perhaps we should
            // wrap the IllegalArgumentException that might be thrown?
            if (arg instanceof Long) {
                // Note that the following method uses an instance of the
                // default time zone (TimeZone.getDefaultRef().
                cal = Calendar.getInstance(l == null ? Locale.US : l);
                cal.setTimeInMillis((Long)arg);
            } else if (arg instanceof Date) {
                // Note that the following method uses an instance of the
                // default time zone (TimeZone.getDefaultRef().
                cal = Calendar.getInstance(l == null ? Locale.US : l);
                cal.setTime((Date)arg);
            } else if (arg instanceof Calendar) {
                cal = (Calendar) ((Calendar)arg).clone();
                cal.setLenient(true);
            } else {
                failConversion(c, arg);
            }
            // Use the provided locale so that invocations of
            // localizedMagnitude() use optimizations for null.
            print(cal, c, l);
        }
Code: Java
Который не намного лучше, при чём будет создаваться ещё один Foramter, StringBuilder и ещё куча всего
__________________
bloodshed вне форума Отправить сообщение для bloodshed с помощью ICQ Отправить сообщение для bloodshed с помощью Skype™ Ответить с цитированием
Непрочитано 03.06.2013, 14:21   #12
Аватар для ANZO
Разработчик BDO Emu

По умолчанию Re: Логирование в L2J

А посмотреть во что это в компилированном состоянии превращается я как понимаю никак?
ANZO вне форума Отправить сообщение для ANZO с помощью ICQ Отправить сообщение для ANZO с помощью Skype™ Ответить с цитированием
Непрочитано 03.06.2013, 15:53   #13
Супергерой

По умолчанию Re: Логирование в L2J

Цитата:
Сообщение от ALF. Посмотреть сообщение
Немного загрустив о L2 решил посмотреть как там использовалось логирование.
После чего был сильно опечален.
...
Когда что-то исправляют и ломают thread-safety, это тоже сильно печалит.
acmi вне форума Отправить сообщение для acmi с помощью ICQ Ответить с цитированием
Непрочитано 03.06.2013, 17:42   #14
Аватар для VISTALL
Illussion is real

По умолчанию Re: Логирование в L2J

Мне написал человек их L2J, насчет этой темы, я ему посоветовал перейти на Slf4J, и тестить с Log4J vs Logback
__________________
consulo.io - Consulo - multi-language IDE
VISTALL вне форума Ответить с цитированием
Непрочитано 03.06.2013, 18:55   #15
Аватар для GuildHack
Пользователь

По умолчанию Re: Логирование в L2J

Цитата:
Сообщение от VISTALL Посмотреть сообщение
смирись. Есть люди которые её юзают, после СП1 она стала по лучше.

Как и большинство юзеров - юзают Клипсу, а она такое *овно

Другие юзеры - юзают IntelliJ IDEA, она не сильно отошла от Клипсы
Ты сам когда-то пользовался IDEA . И кстати Eclipse и IDEA самые ходовые среды разработки (Если не учитывать NetBeans). Не знаю, что ты в них "*овеного" нашел, достаточно удобно и функционально.
GuildHack вне форума Ответить с цитированием
Непрочитано 03.06.2013, 19:23   #16
Аватар для ALF.
Герой

Автор темы (Топик Стартер) Re: Логирование в L2J

Цитата:
Сообщение от acmi Посмотреть сообщение
Когда что-то исправляют и ломают thread-safety, это тоже сильно печалит.
Немного не понял, но
http://docs.oracle.com/javase/6/docs...ng/Logger.html

Цитата:
All methods on Logger are multi-thread safe.
ALF. вне форума Отправить сообщение для ALF. с помощью ICQ Отправить сообщение для ALF. с помощью Skype™ Ответить с цитированием
Непрочитано 03.06.2013, 19:29   #17
Аватар для JavaMan

По умолчанию Re: Логирование в L2J

Цитата:
Сообщение от ALF. Посмотреть сообщение
Немного не понял, но
http://docs.oracle.com/javase/6/docs...ng/Logger.html
Он говорил про класс Date.
JavaMan вне форума Ответить с цитированием
Непрочитано 03.06.2013, 19:52   #18
Аватар для VISTALL
Illussion is real

По умолчанию Re: Логирование в L2J

Цитата:
Сообщение от GuildHack Посмотреть сообщение
Ты сам когда-то пользовался IDEA . И кстати Eclipse и IDEA самые ходовые среды разработки (Если не учитывать NetBeans). Не знаю, что ты в них "*овеного" нашел, достаточно удобно и функционально.
Юзаю сейчас IntelliJ IDEA CE by VISTALL.

В планах перейти на Consulo (IDE by VISTALL).

А говненно - это код, отношения компании, прочее
__________________
consulo.io - Consulo - multi-language IDE
VISTALL вне форума Ответить с цитированием
Непрочитано 03.06.2013, 20:09   #19
Аватар для ALF.
Герой

Автор темы (Топик Стартер) Re: Логирование в L2J

Цитата:
Сообщение от Java-man Посмотреть сообщение
Он говорил про класс Date.
В нашем случаи не будет никаких конфликтов
Ибо все функции логирования вызываются через объект класса Logger-а

log.log("blablabla");

И только через внутренние вызовы будет вызван наш форматтер.
Естественно что там никогда не будет 2 потока одновременно, если вручную не вызвать местод форматтера.

п.с. public static Logger getLogger(String name) не требует синхронизации и не создает новый объект логера
ALF. вне форума Отправить сообщение для ALF. с помощью ICQ Отправить сообщение для ALF. с помощью Skype™ Ответить с цитированием
Непрочитано 03.06.2013, 21:00   #20
Аватар для JavaMan

По умолчанию Re: Логирование в L2J

Цитата:
Сообщение от ALF. Посмотреть сообщение
В нашем случаи не будет никаких конфликтов
Ибо все функции логирования вызываются через объект класса Logger-а

log.log("blablabla");

И только через внутренние вызовы будет вызван наш форматтер.
Естественно что там никогда не будет 2 потока одновременно, если вручную не вызвать местод форматтера.

п.с. public static Logger getLogger(String name) не требует синхронизации и не создает новый объект логера
Да, ты прав, Formatter#format вызывается в синхронизированном методе.
Это конечно потокобезопасно, но ужасно медленно. Так что лучше использовать нормальный логгер, типа logback или log4j2.
JavaMan вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск сервера DotA 2 Twinker Другие игры / Other games 6 04.09.2022 21:11
[Продам] Lineage2 Interlude от команды RusTeam TARAN Рынок / Marketplace 2 29.05.2010 17:17


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 02:21. Часовой пояс GMT +3.

Вверх