I have looked around and I havent been able to find a clear cut answer to how this can be configured. i read that the native logrotate is a bad idea. so is there a way to do this within the log4j configuration?
Do not use the native logrotate unless you want to zip your old files. Use the log4j facilities, in this specific case: org.jboss.logging.appender.DailyRollingFileAppender implementation.
Will use the param DatePattern to roll the logs daily or whatever you set it up to do http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html
then you use cron to gzip the logs as needed.