Один метод, который Вы могли использовать, должен использовать псевдоним вместо символьной ссылки для взятия Вас к ~/a/really/long/path. Это - метод, который я использую, с тех пор я могу просто ввести простой 1/2/et cetera команда буквы вместо символьной ссылки CD
Это - часть философии Unix. Идея состоит в том, что текстовые файлы лишены привязки программы, и все могут использовать любую технику, которую они предпочитают. Для взятия этого далее плоские файлы часто используются, в противоположность языкам разметки как XML (хотя я видел, что программы хранят вещи в формате XML также).
В поиске с помощью Google я нашел эту хорошую рецензию о простом тексте с комментариями о философии Unix.
Используя простой текст файлы имеют преимущество, что Вам не нужна никакая база данных определенные инструменты для получения записей в журнале.
Можно проанализировать их с grep, если Вам нравится, можно открыть их с любимым пейджером, и можно обработать их в любимом языке сценариев как Perl, Python, и т.д. без потребности любых дополнительных библиотек.
В системе Unix у Вас уже есть некоторый "системный журнал API". Это называют системным журналом. Системным журналом не является действительно API, но это - стандарт для входа сообщений. Имя обозначает сетевой протокол и библиотеку и демона позади нее.
Конфигурация по умолчанию большинства систем является демоном системного журнала, слушающим локальные сообщения.
Демон принимает сообщения и делает вход. Существует несколько различных реализаций демонов системного журнала для всего вида платформ, и также возможно зарегистрировать Ваши сообщения к базе данных.
Вам решать.
Я просто задаюсь вопросом, почему там столько файлов журнала в типичной системе Linux?
Различные файлы журнала содержат другую информацию (хотя обычно существует некоторое дублирование). У них часто есть различные характеристики: различные политики вращения и хранения, различные полномочия, и т.д. Демон системного журнала заботится о записи их; Вы видите его настройки в /etc/syslog.conf
или /etc/syslog-ng.conf
.
Не был бы это быть лучшей идеей иметь одну системную функцию API для входа
Этот - хорошая идея. Давайте назовем это системным журналом. Его задание состоит в том, чтобы отправить записи в журнале демону системного журнала.
и одна объединенная таблица для сохранения всех записей в журнале из всех приложений?
Теперь это - целая куча проблем. Вы, кажется, принимаете присутствие механизма базы данных, вероятно, реляционная база данных, вероятно, один можно запросить в SQL. Но Unix является более старым, чем SQL, и существуют очень серьезные основания, почему он не принял SQL как стандартный компонент. Под Unix база данных является файловой системой. Это не реляционная база данных, это - простое. Его записи не являются строками, но простыми файлами, предпочтительно текст, предпочтительно с простым форматом. Например, файлы журнала являются текстовыми файлами, с одной записью на строку, содержа дату, название машины, инициирующую программу и текст элемента. Используя реляционную базу данных имел бы много оборотных сторон:
cat
, grep
, less
против SQL-запросов. И полномочия файла против, ну, в общем, я не знаю, как Вы обработали бы это в типичной реляционной базе данных.Если действительно требуется сохранить систему, входит в систему реляционная база данных (который может иметь много преимуществ), проверьте rsyslog (И ближайшая замена для системного журнала), который может записать системные журналы в MySQL, базу данных Postgres или Oracle.
Это сделало бы вещи как 'хвост-f /var/log/apache/access.log' невозможный.
Почему Вы думаете, что было бы лучше поместить все в один файл?
grep '\[apache\]' | tail -f /dev/stdin
- но имея сервер входа в систему в расчете на пользователя (когда пользователь не имеют никакого доступа к журналу другого пользователя).
– Maciej Piechotka
08.10.2010, 17:21