Создай папку log в корне программы и будет тебе счастье

У меня есть программа в которой я использую sl4j, для логов пишу log.info() . Как можно создать отдельный файл для логов в проекте?

Отслеживать
задан 19 фев 2020 в 9:34
Артём Курилко Артём Курилко
39 7 7 бронзовых знаков

Нужно сконфигурировать лог, в нем указав файлы, куда вы будете его писать. sl4j — это интерфейс, кинфигурация зависит от библиотеки логгирования. Если это log4j, то в log4j.properties нужно сконфигурировать.

19 фев 2020 в 10:30

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

logging.file.name=fileExample.log

Вариант без спринга resources/logback.xml

myLogFile.log true %d [%thread] %-5level %logger — %msg%n
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LogbackTest < public static Logger slf4jLogger = LoggerFactory.getLogger(LogbackTest.class); public static void main(String[] args) < slf4jLogger.trace(«Hello World!»); String name = «Abhijit»; slf4jLogger.debug(«Hi, <>», name); slf4jLogger.info(«Welcome to the HelloWorld example of Logback.»); slf4jLogger.warn(«Dummy warning message.»); slf4jLogger.error(«Dummy error message.»); > >

Источник: ru.stackoverflow.com

Как создать папку или файл на компьютере

Куда класть логи своего приложения в Linux?

Появилась необходимость складирования логов приложения, точнее лог файл один. Подскажите, пожалуйста, куда в Linux принято складывать log файлы? Так, чтобы пользователь ожидал их именно там. Может есть какой-то guide по расположению данных приложения ы Linux? Был бы благодарен за ссылки.

Я пытался положить лог в /var/log но получил пинок от ACL, собственно w туда простому смертному запрещен.

  • Вопрос задан более трёх лет назад
  • 5993 просмотра

Комментировать
Решения вопроса 1

При установке пакета своего приложение, пусть создается папка /var/log/your_apps с соответствующими разрешениями, в эту папку и складывайте логи.
по-моему путь для логов, в данном случае, белее чем очевиден.
Так поступают многие приложения.

Ответ написан более трёх лет назад
Нравится 3 10 комментариев
А если per-user логи?

если per-user, то при за пуске от юзера создавать(проверять наличие) папку ~/.your_apps, и писать все туда.
распространенная практика.

Спасибо, так и сделал.

Это плохая практика писать в домашнюю папку и вообще куда-либо из приложения «по-быстрому». Как я написал выше, есть большая вероятность что-то испортить (при банальном совпадении, например) и превысить квоты пользователя без его ведома. Лучший выход — ничего в файлы не писать, а все сообщения выводить в STDOUT, если другое не задано явно.

Читайте также:
Штраф для юридических лиц за использование нелицензионных программ

ЛАЙФХАК: Как создать ДЕЙСТВИТЕЛЬНО невидимую папку #Shorts

Хотя может я все слишком идеализирую, если ваша программа написана для 10-20 клиентов, но можно и не париться

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

Так же в программе предусмотреть возможность переключения уровня логов, вплоть до debug, и возможность указания пути для логов. Далее уже прикрутить это все к logrotate. Но это все в идеале, мы же говорим о реальной ситуации, вероятнее всего и логи будут небольшие и клиентов ни так уж много.

Добавлю, что вместо ~/.your_app лучше использовать ~/.config/your_app

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

standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
Настройки — в $XDG_CONFIG_HOME, данные (в том числе и логи) — в $XDG_DATA_HOME

DevMan

+1, срач в хомяке порядком надоедает.
z0rc, то что надо. Спасибо за ссылку!
Ответы на вопрос 5
Писать в syslog. #include

Ответ написан более трёх лет назад
Нравится 3 4 комментария
нет, приложение кроссплатформенное и использует кроссплатформенные же методы логирования

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

Зачем крутить костыли когда давно есть log4?
Приложение интенсивно пишущие в windows event log вызовет недоумение у одних и ненависть у других. Вряд ли, хоть кто-то это оценит с положительной стороны.

Читайте также:
Зона отзывы о программе вирусы

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

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

В разных дистрибутивах, когда пользователь устанавливает пакет через менеджер типа yum или apt-get, он делает это с правами рута и писать может только в свой файл, созданный менеджером. Поэтому лучший способ по умолчанию все логи, исполняемые файлы и т.д. — складывать в одну папку, но дать возможность все пути настраивать, чтобы ответственность брал на себя пользователь/менеджер пакетов, иначе у разных пользователей ваше приложение просто не будет работать

Ответ написан более трёх лет назад
Нравится 1 2 комментария

Ну вот смотрите, по меньшей мере есть стандартный(?) метод хранения данных приложения ~/.name
Я могу класть и сюда, но будет ли это ожидаемо?
Над пользовательским контролем путей приложения я не думал, честно говоря. Это хороший вариант, но всегда должны быть стандартные пути, чтобы пользователь, который не хочет заморачиваться просто установил приложение и не раздумывал над выбором путей.

В Линуксе пользователь вряд ли просто-так установит приложение, если вы или кто-то этого не предусмотрели. А если вы предусмотрели и собрали, например, rpm-пакет, чтобы пользователь сделал что-то вроде yum install . он сделает это с правами рута, и тогда проблемы создания файла /var/log/NAME не будет.

Проще было бы если бы вы сказали что за приложение и как планируете его распространять. Я так понимаю вы хотите написать какую-то програмку и с кем-то поделиться, тогда:
-Если пользователь будет его компилировать — делайте по умолчанию в той папке, откуда запущено. Опытные пользователи догадаются сделать это в /usr/local/ВАШЕПРИЛОЖЕНИЕ/logs/. а конкретные пути пускай настраивают, если захотят
-Если хотите чтобы пользователь сделал yum install ВАШЕПРИЛОЖЕНИЕ — то сборка пакета отдельная тема, если вам удастся собрать пакет вопрос где хранить логи к этому времени отпадет.
-А если это просто бинарник, который вы хотите переслать по почте чтобы кто-то просто запустил, то лучше по-умолчанию лог вообще отключить. чтобы кто-то нечаянно что-то не напортачил и не затер важный документ, сообщения выводить на стандартный вывод, а при необходимости что-то логировать пользователь пускай укажет это явно при вызове.

Читайте также:
Как сделать скрин на 10 винде без программ

Источник: qna.habr.com

avhelp

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

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

Скачайте программу AVZ, извлеките из архива и запустите. Обязательно обновите ее: «Файл» -> «Обновление баз».

2015-03-07_134803

Далее «Файл» -> «Стандартные скрипты» -> отметьте 2ой пункт. Нажмите «Выполнить отмеченные скрипты».

2015-03-07_135053

Будет выполнено автоматическое исследование системы, полученный лог будет сохранен в директории AVZ в папке LOG в архиве virusinfo_syscheck.zip.

Лог Farbar Recovery Scan Tool

запустите Farbar Recovery Scan Tool от имени администратора (через правую кнопку мыши выбрать соответствующий пункт), после запуска программы поставьте галку на «Drivers MD5» и нажмите «Scanning».

После окончания сканирования программа откроет два текстовых файла FRST.txt и Addition.txt (она находятся в папке с программой). Выложите содержимое этих двух файлов (или ссылку на загрузку) в комментариях с кратким изложением сути проблемы.

Лог HijackThis

Запустите ее. В появившемся окне с пользовательским соглашением нажмите на кнопку «I Accept». Нажмите на кнопку «Do a system scan and save a logfile». Сохраните лог. По умолчанию лог сохраняется в папке программы с именем hijackthis.log

После создания всех необходимых логов:

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

Источник: avhelp.livejournal.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru