2012-01-24 5 views
4

Я написал небольшую программу java (50-60 строк), чтобы помочь с моей собственной разработкой. Это вызывается из командной строки и в основном загружает файлы и расшифровывает их. Он не был частью какого-либо продукта. Я думал, что это может быть полезно для других разработчиков в моей группе, поэтому я отправил его для проверки кода. Комментарий вернулся, мне нужно , чтобы изменить System.out.println -s на log4j.Log4j vs. println для простой удобной программы

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

Является ли это излишним? Я думаю, что это.

+0

@Hemant Metalia: Этот формат нормальный? –

+0

@ ZiyaoWei я просто хотел выделить важные моменты в вопросе –

+0

Это, вероятно, более подходит для программистов.stackexchange.com –

ответ

2

Кажется, вы просите мнение, которое, вероятно, будет помечено для закрытия, но пока я согласен, println совершенно применимо. Отладочные и информационные сообщения, однако, обычно отправляются в System.err, а не System.out.

1

Если вы хотите, чтобы люди повторно использовали ваш код, вы захотите использовать какой-нибудь регистратор. Если вы собираетесь использовать регистратор, я бы рекомендовал использовать SLF4J вместо log4j. Это позволит некоторым разработчикам нисходящего потока, использующим ваш код, использовать любую инфраструктуру ведения журнала, которая им нужна, или имеет привязку для API SLF4J (log4j, java.util.logging, logback и т. Д.).

Если вы не заботитесь о повторном использовании кода, и это автономный продукт, то да, возможно, это излишний.

+0

+1 для указания коэффициента повторного использования. Но @ user1166233, определенно используйте Log4J поверх SLF4J. – Perception

+0

Знаете ли вы о каких-либо программах командной строки, которые используют ведение журнала для stdout и stderr? Кажется, нет смысла печатать пару имен файлов и сообщение завершения. Я не ожидаю, что кто-нибудь будет использовать эту программу точно так же, как я ее написал.Я просто подумал, что могу спасти других людей от необходимости переписывать что-то похожее с нуля. – user1166233

0

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

Вы не можете отфильтровывать то, что соответствует стандарту, если вы используете System.out ... все будет напечатано. Используя любую систему ведения журнала, например SLF4J, Commons Logging или вы можете использовать log4j, вы можете установить различные уровни ведения журнала.

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

+0

уверен, что вы можете отфильтровать то, что входит в System.out. это то, что делают фильтры, читайте с stdin и пишите в stdout. –

+0

То, что я имел в виду, было удобнее с 'loggers'. Например, если я изменяю уровень ведения журнала, чтобы предупредить, что мое сообщение об отладке и информации больше не будет отображаться. Итак, теперь у меня больше контроля над моим протоколированием. – RanRag

+0

OK, понимает. Я использую протоколирование, где это применимо, но для простых сценариев командной строки обычно предпочитают stdout/stderr. –

0

Возможно, это (overkill), но зависит.

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

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

Смежные вопросы