2012-02-24 6 views
4

Вращение журнала для установки продукта Plone было бы приятной особенностью. Каковы текущие лучшие практики интеграции интеграции журналов в Plone?Вращение журнала с помощью Plone

Я нашел эту статью: http://encolpe.wordpress.com/2010/06/17/how-to-get-log-files-rotate-in-zope-with-buildout/, но поскольку на plone.org нет документации, я бы хотел рассказать об этом сообществу за хорошие известные рекомендации, чтобы не заполнить их жесткие диски.

+0

проверить мой ответ ниже ... это был бы самый простой вариант .. просто добавьте 2 строки к вашей компоновке – sureshvv

ответ

4

Как и то, что сказал Лоуренс выше, но сохраняет размер под 10 МБ и сохраняет только 1 старый файл.

<eventlog> 
    level INFO 
    <logfile> 
    path /path/to/plone4/var/log/client1.log 
    max-size 10mb 
    old-files 1 
    </logfile> 
</eventlog> 

plone.recipe.zope2instance может сгенерировать это сейчас. Например, вы можете указать следующие параметры:

event-log-max-size = 10mb 
event-log-old-files = 3 
1

Я использовал iw.rotatezlogs, так как по крайней мере ранний Plone 3 очень успешно. Я вижу по вашей ссылке, что мне больше не нужны iw.rotatezlogs.

Мне не нравится полагаться на logrotate, поскольку он не может использоваться на одном сервере Windows, на котором я должен установить.

Насколько я могу судить, решение pure-zope (которое я не тестировал) не выполняет сжатие файла журнала (по крайней мере, я не вижу его в ZConfig/components/logger/handlers.xml где я думаю, что это нужно определить), поэтому я подозреваю, что останусь с iw.rotatezlogs.

2

Вот что мы делаем, это просто, но работает:

В вашем билдаута добавить эту часть:

[logrotate] 
recipe = collective.recipe.template 
input = ${buildout:directory}/templates/logrotate.conf 
output = ${buildout:directory}/etc/logrotate.conf 

И в templates/logrotate.conf

rotate 4 
weekly 
create 
compress 
delaycompress 
missingok 

${buildout:directory}/var/log/instance1.log ${buildout:directory}/var/log/instance1-Z2.log { 
    sharedscripts 
    postrotate 
     /bin/kill -USR2 $(cat ${buildout:directory}/var/instance1.pid) 
    endscript 
} 

${buildout:directory}/var/log/instance2.log ${buildout:directory}/var/log/instance2-Z2.log { 
    sharedscripts 
    postrotate 
     /bin/kill -USR2 $(cat ${buildout:directory}/var/instance2.pid) 
    endscript 
} 

Добавить любые другие бревенчатые севообороты вам нужно , Затем это связано с привязкой файла /etc/logrotate.conf к сгенерированному файлу.

+0

Опять же, это Unix-ориентированный - не будет работать в Windows. Я не * люблю * запускать Plone/Zope в Windows, но некоторые клиенты этого требуют. – Auspex

+0

Вы абсолютно правы, это будет работать только в unix-подобных средах. Опять же, вопрос не задал вопрос о том, какой лучший кросс-платформенный способ сделать логротацию, а также что нужно сделать в руководстве plone. Он попросил передовой опыт. В моем списке лучших практик окна не указаны. Я могу полностью понять, почему вы делаете это с вашей точки зрения, не поймите меня неправильно. В любом случае я перестану отвечать на эти вопросы типа тролля, которые мы начинаем недавно, это пустая трата ресурсов stackoverflow и моя энергия. – ggozad

+0

вряд ли можно назвать это «вопросом типа тролля» - это очень хороший вопрос, и я рад, что узнал от него, что теперь логотрон встроен в Zope. И хотя я согласен с вами в том, что запуск Zope на Windows вряд ли подходит, я не могу согласиться с тем, что наилучшая практика для вращения журнала включает метод, который не может работать на всех платформах, поддерживаемых Zope. – Auspex

6

ZConfig имеет поддержку стандартной библиотеки RotatingFileHandler и TimedRotatingFileHandler. Принимая пример из тестов ZConfig:

<eventlog> 
    <logfile> 
    path /path/to/file.log 
    level debug 
    when D 
    interval 3 
    old-files 11 
    </logfile> 
</eventlog> 

Это будет пролонгировать бревна каждые три дня, сохраняя 11 старых файлов.

Вы размещаете эти конфигурационные фрагменты вашего построения с использованием пользовательских параметров журнала событий-пользовательского/доступного журнала в вашем рецепте экземпляра. plone.recipe.zope2instance

+0

Это хорошо работает для меня ... Как и в сообщении блога encolpe – sureshvv

+0

Есть ли способ получить сжатие, как это сделал iw.rotatezlogs? – Auspex

2

Микко, вы должны спросить меня непосредственно;)

Мой блог статьи по-прежнему хорошо, и эта функция все еще документирован в Zope2. Он может использоваться с Plone 4 и Plone 5. Расширение iw.rotatelogs предназначено только для Plone 3.

Использование логротата не является прекрасным, поскольку оно не обрабатывает случай логарифма во время вращения. Это может привести к сбою вашего экземпляра и записи журналов в ОЗУ, пока вы не перезапустите экземпляр.