php.log rotation for IBM i

Follow

Issue

It is a good idea to occasionally save the php.log file and start a new one, to help prevent the log from growing too large.  Linux users can use the logrotate utility to do this, but there is no logrotate utility on the IBM i.  This article describes a simple method to periodically rename the php.log file and let a new one be created.

Environment

Zend Server for IBM i on any supported version of IBM i.

Resolution

One simple way to rotate the php.log file is with a CL program set up to run in the IBM Job Scheduler. The source for the CL program could look like this:

PGM
DCL VAR(&TIMESTAMP) TYPE(*CHAR) LEN(20)
DCL VAR(&NEWNAME) TYPE(*CHAR) LEN(30)
RTVSYSVAL SYSVAL(QDATETIME) RTNVAR(&TIMESTAMP)
CHGVAR VAR(&NEWNAME) VALUE('php.log.' *CAT &TIMESTAMP)
RNM OBJ('/usr/local/zendsvr6/var/log/php.log') +
NEWOBJ(&NEWNAME)
ENDPGM

This will append a timestamp to the end of the php.log file name. The next time PHP needs to write a php.log entry, it will create a new php.log file.

You can run this CL program periodically using the Job Scheduler. Once a week might be a good choice.

Once in a while go to the /usr/local/zendsvr6/var/log directory and delete the old renamed files.

To learn how to adjust the error_level setting so that the php.log file grows more slowly, please take a look at this article:

Set error_level to control error reporting in the php.log file

Note: For Zend Server 5 customers, the location of the php.log file is /usr/local/zendsvr/var/log/php.log.  Please adjust the CL source accordingly.

Have more questions? Submit a request

Comments

  • Avatar
    Tony Payne

    That's a nice simple solution Rod. I was just looking to see if there was a way to recycle our php.log file.

Powered by Zendesk