I figure you can just make a cron job to do it at some interval.
[SELECT ALL] Code:
mv /home/user/assaultcube-dir/serverlog*.txt /home/user/newlogdir/
I tested and it looks like you can have a server running while this command moves the logfile in use to another directory, and it will keep logging correctly to the same file in its new location, rather than creating a redundant logfile in the default location as I thought it would. So there's one less thing to worry about.
For your demo issue, try chmodding 777 that directory and then try again, just to rule out any permissions issues. AFAIK demos don't get saved on the server unless you use -W; they just sit in the queue in RAM until they're pushed out by newer ones.