Ротация бревен с Plone - PullRequest
       6

Ротация бревен с Plone

4 голосов
/ 24 февраля 2012

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

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

Ответы [ 5 ]

6 голосов
/ 25 февраля 2012

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

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

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

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

4 голосов
/ 26 февраля 2012

Аналогично тому, что сказал Лоуренс выше, но размер файла не превышает 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
2 голосов
/ 19 января 2015

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

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

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

2 голосов
/ 25 февраля 2012

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

В вашей сборке вы добавите эту часть:

[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 с созданным файлом.

1 голос
/ 24 февраля 2012

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

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

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

...