Як спрямувати вихід журналу певних одиниць на певний файл?


12

У мене є система з кількома демонами, що працюють (як системні одиниці), які виводять інформацію журналу до журналу в Arch Linux. Я хочу направити журнальний вихід деяких файлів одиниць у окремий текстовий файл, розташування якого я вказую, по суті створюючи файл журналу для підмножини одиниць. Як я можу робити це?


Пов'язане питання - unix.stackexchange.com/questions/468444 .
JdeBP

Відповіді:


10

Здається , це не представляється можливим , і небажане вгору по течії (перенаправлення STDOUT / STDERR в окремі файли) Дивись , наприклад , http://lists.freedesktop.org/archives/systemd-devel/2012-March/004705.html - читати всю нитку більш інформація про контекст, як це має працювати.

Що ви можете зробити, це або увійти в syslog, і таким чином записати в окремі файли. Або навпаки, якщо пристрій викликає якусь програму, яка сама може записати журнал, то використовуйте це для входу у файл.

Ви також можете поглянути на Перегляд stdout / stderr системної служби

Те, що ви вже можете зробити під час свого поточного налаштування, - це використовувати
journalctl -u yourunitname > yourlogfile_for_yourunitname
для спрямування всього виходу журналу для вашого блоку "yourunitname" у файл.

В останній частині також слід ознайомитись з підказками Леннарта з вищезгаданої нитки списку розсилки:

На останніх системних версіях щось подібне systemd-journalctl -o cat _SYSTEMD_UNIT=postgresql.serviceповинно створювати дуже простий вихід, який включає лише фактичні повідомлення та більше нічого. Ви навіть можете пройти "-f" і зробити це живою ".

EDIT: Насправді, для новіших системних версій команда є лише journalctl, і, як я можу сказати, вищезгадана довга команда така сама, як journalctl -u yourunitnameі ви також можете -fтам "слідувати" за результатами (як у tailf або tail -f).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.