Объединить все файлы журнала в один

Объединить все файлы журнала в один

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

У вас есть журнал ошибок 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.

Связанный контент