Какой смысл использовать каркас логирования?

Я попробовал решение по Тобинской радости и викихаукам, и оба они производят результат 580085, который является неправильным здесь, это мое решение, хотя и очень неуклюжие:

import java.util.*;
class ProjEu4
{

public static void main(String [] args) throws Exception
{
    int n=997;
    ArrayList<Integer> al=new ArrayList<Integer>();
    outerloop:
    while(n>100){
    int k=reverse(n);
    int fin=n*1000+k;
            al=findfactors(fin);
    if(al.size()>=2)
        {
            for(int i=0;i<al.size();i++)
            {
                if(al.contains(fin/al.get(i))){
                    System.out.println(fin+" factors are:"+al.get(i)+","+fin/al.get(i));
                    break outerloop;}
            }

        }
        n--;
    }
}
private static ArrayList<Integer> findfactors(int fin)
{
    ArrayList<Integer> al=new ArrayList<Integer>();
    for(int i=100;i<=999;i++)
    {
        if(fin%i==0)
            al.add(i);
    }
    return al;
}
private static int reverse(int number)
{
    int reverse = 0;
    while(number != 0){
        reverse = (reverse*10)+(number%10);
        number = number/10;
    }
    return reverse;
}
}
18
задан 27 September 2008 в 23:02
поделиться

6 ответов

Это - превосходный вопрос.

первая причина "почему нет?" При использовании платформы журналирования тогда Вы получите выгоду пригодности для обслуживания использования чего-то уже упакованного.

вторая причина состоит в том, что вход является тонким. Различные потоки, сессии, классы и экземпляры объектов могут все сыграть роль во входе, и Вы не хотите должными быть понимать эту проблему на лету.

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

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

, Но действительно, первый ответ является лучшим; существует очень мало преимущества для записи Вашего собственного, и целый набор недостатков.

22
ответ дан Will Sargent 27 September 2008 в 23:02
поделиться

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

, Что еще более важно, хотя, большинство платформ журналирования позволяет Вам определять loglevel различных классов, таким образом, Вы не должны сокращать новый двоичный файл каждый раз, когда Вы хотите больше/меньше регистрироваться (что подробный вход для ошибки, которую Вы просто определили в производстве)

сайт Log4Net имеет больше детали

3
ответ дан Oskar 27 September 2008 в 23:02
поделиться
  • 1
    как я могу проверить уведомление о нажатии с сертификатами распределения? – Bharathi D 24 August 2012 в 08:54

Одним словом: гибкость. Log4xxx дает Вам способность сделать различные уровни входа, зарегистрировать различные модули кода в различные файлы, и можно ли зависеть от него, чтобы быть надежными, какая странная ситуация это поражает (что сделает регистратор, если диск будет вне пространства?)

2
ответ дан tloach 27 September 2008 в 23:02
поделиться

В зависимости от того, насколько умный Ваша собственная реализация системы регистрации.

В Java, если бы Вы хотите наследовать типы журнала, и т.д., это могло бы быть слишком много стычки, и Вы предпочли бы стороннюю программу как Log4J. Я предполагаю, что существуют подобные вещи для C#. Так же, если Вы хотите определить уровень журнала из командной строки.

, Если Вы просто хотите направить весь свой System.out и управлять, печатаются ли они каждый раз, когда Вы компилируете, Ваш собственный регистратор сделал бы очень хорошо.

1
ответ дан Uri 27 September 2008 в 23:02
поделиться
  • 1
    Удивительный это решило мою проблему... Много Большое спасибо – Anand 6 September 2012 в 06:06

Платформы журналирования предлагают гибкость и препятствуют тому, чтобы Вы изобрели велосипед. Я знаю, что до полусмерти просто добавить в файл на каком-либо современном языке, но Ваш регистратор собственной разработки имеет несколько целей? Можно ли стать входящими в систему и прочь во времени выполнения? Почему рискуют спущенная шина, когда эти колеса доступны бесплатно?

1
ответ дан Bill the Lizard 27 September 2008 в 23:02
поделиться
  • 1
    Когда я делаю это I' m получение этой ошибки в ajax обратном вызове: TypeError в/ingredients/' int' объект не повторяем – finspin 24 June 2012 в 12:17

Что-то другие комментарии опустило: если уже существует библиотека, которая делает то, что Вы хотите, она сохраняет Вас имеющий необходимость написать код .

Возможно Вы играете семантику здесь: мне "платформа журналирования" обычно немного больше, чем класс, который пишет сообщения журнала в файл... поэтому, что Вы сделали, запись Ваша собственная платформа журналирования. Учитывая, что Вы сделали так, существует, очевидно приблизительно точка в "использовании Платформы журналирования"!

В конечном счете Вы испытываете необходимость, чтобы удостовериться, что это обрабатывает параллельный вход правильно (блокирующий поток вывода), может зарегистрироваться в файл, системный журнал, и т.д., может сделать прокрутку журнала и так далее. Можно сохранить себя что усилие при помощи чужого хорошо протестированного кода.

2
ответ дан Rich 27 September 2008 в 23:02
поделиться
  • 1
    Просто к вашему сведению - некоторые более старые браузеры don' t имеют встроенную библиотеку JSON. Вы могли бы быть более обеспеченным использованием $.serialize, а не JSON.stringify – Josh Smeaton 25 June 2012 в 00:01
Другие вопросы по тегам:

Похожие вопросы: