Как вы все, вероятно, знаете, нам, разработчикам, иногда приходится иметь дело с журналами.
У вас есть журнал ошибок PhP, отладка Laravel, MySQL, Apache, результаты cron и т. д.
Вот мой вопрос, возможно ли объединить все файлы журналов в один? Также можно ли настроить его так, чтобы он удалял журнал каждый день и объединял его снова? Так что в файле будут только свежие данные?
Итак, это будет выглядеть так:
//Ошибки PHP
Что бы ни...
//апач
Что бы ни...
//крон
Что бы ни...
решение1
Именно для этого и былrsyslog
демоннаписано. Он поставляется с предустановленной Ubuntu, но его нужно немного настроить, чтобы он делал то, что вам нужно. Он может читать файлы журналов и объединять их, собирать сообщения журналов из других систем по сети и направлять их куда угодно. Он очень, очень мощный. Однако начать работать с ним шокирующе просто, как говорит Джейкоб.
Следуйте примерам конфигурации с сайта и получайте удовольствие.
решение2
можно ли объединить все файлы журналов в один?
Если вы хотите объединить журналыпо дате и времени, тогда попробуйтеСуперскоростной поисковик Syslog
(предполагая, что у вас естьржавчина установлена)
cargo install super_speedy_syslog_searcher
затем
s4 /var/log/php/ /var/log/apache2/ /var/log/cron > /var/log/merged.log
Также можно ли настроить его так, чтобы журнал удалялся каждый день и объединялся снова?
Этот простой скрипт оболочки сделает это
#!/usr/bin/env sh
s4 /var/log/php/ /var/log/apache2/ /var/log/cron > /var/log/merged.log
Скопируйте скрипт в /etc/cron.daily/merge-logs.sh
. Не забудьте сделать скрипт исполняемым; chmod +x /etc/cron.daily/merge-logs.sh
.