in reply to
Log4perl is not writing into the log file when log file contents are cleared
It is likely that logrotate is unlinking the file. In Unix this does not delete the file, but only the directory entry. Since you keep the file open you keep writing to it. If you are not compressing the file you should be able to tail the logfile.1 file and see that your logging is still going to that file.
To solve this problem you can either have logrotate do a copytruncate or have you program close (and open) the log when it gets a SIGHUP and set prorotate to send a HUP to your program.
A picture is worth a thousand words, but takes 200K.