Difference between revisions of "Timing.log Rotation"

From WeBWorK_wiki
Jump to navigation Jump to search
 
Line 6: Line 6:
 
$ sudo gedit /etc/logrotate.d/webwork
 
$ sudo gedit /etc/logrotate.d/webwork
   
Now copy and paste the following code into gedit
+
Now copy and paste the following code into gedit:
 
/opt/webwork/webwork2/logs/timing.log {
 
/opt/webwork/webwork2/logs/timing.log {
 
su www-data wwdata
 
su www-data wwdata
Line 16: Line 16:
 
notifempty
 
notifempty
 
}
 
}
and then save the file and quit. The backup will be done weekly and we are keeping 15 weeks (approximately one semester) worth of logs.
 
  +
  +
For WeBWorK 2.18 also add the following code to that file:
  +
/opt/webwork/webwork2/logs/webwork2.log {
  +
su www-data www-data
  +
weekly
  +
missingok
  +
rotate 15
  +
compress
  +
delaycompress
  +
notifempty
  +
copytruncate
  +
}
  +
  +
Then save the file and quit. The backup will be done weekly and we are keeping 15 weeks (approximately one semester) worth of logs.
 
The most recent backup will not be compressed but all older ones will be. We are not explicitly creating a new <code>timing.log</code> file
 
The most recent backup will not be compressed but all older ones will be. We are not explicitly creating a new <code>timing.log</code> file
 
because WeBWorK will automatically create one if it's missing. If you want to check that it works you can run <code>logrotate</code>
 
because WeBWorK will automatically create one if it's missing. If you want to check that it works you can run <code>logrotate</code>

Latest revision as of 20:16, 16 August 2023

Here we will set up log rotation for WeBWorK's timing log which can grow huge especially if you have a large number of users. The timing.log gives timing information on every action in WeBWorK (see WeBWorK_performance) and can be used to assess the performance of your server.

Create a WeBWorK configuration file for Logrotate

Logrotate’s configuration files are located in /etc/logrotate.d. Now we create one for WeBWorK.

$ sudo gedit /etc/logrotate.d/webwork

Now copy and paste the following code into gedit:

/opt/webwork/webwork2/logs/timing.log {
su www-data wwdata
weekly
missingok
rotate 15
compress
delaycompress
notifempty
}

For WeBWorK 2.18 also add the following code to that file:

/opt/webwork/webwork2/logs/webwork2.log {
su www-data www-data
weekly
missingok
rotate 15
compress
delaycompress
notifempty
copytruncate
}

Then save the file and quit. The backup will be done weekly and we are keeping 15 weeks (approximately one semester) worth of logs. The most recent backup will not be compressed but all older ones will be. We are not explicitly creating a new timing.log file because WeBWorK will automatically create one if it's missing. If you want to check that it works you can run logrotate with the configuration file (make sure you have done something with WeBWorK so that the timing.log is not empty):

sudo logrotate -f /etc/logrotate.d/webwork

Then if you look in /opt/webwork/webwork2/logs, you should see

timing.log.1

You will not see a timing.log file unless someone has been doing something with WeBWorK. If there is no timing.log file do something yourself (e.g. login to a course) and then you should see

timing.log
timing.log.1

Now run logrotate again

sudo logrotate -f /etc/logrotate.d/webwork

and do something in WeBWorK and you should see

timing.log
timing.log.1
timing.log.2.gz

Here is what is going on. timing.log.1 was renamed to timing.log.2 and compressed giving timing.log.2.gz. timing.log was renamed to timing.log.1. And the something you (or someone else) did in WeBWorK created a new timing.log file. A similar procedure will happen weekly until there are a total of 15 backups after which the oldest one will be deleted.


-- Main.ArnoldPizer - 6 May 2020