Day 1 Program start and works all day. Log is written as expected
Day 2 Past midnight when first activity for the day happens (a cron in
my case) THAT ACTIVITY is recorded and all data for the Day 1 is lost.
This activity is recorded as Day 1 activity
log4j.rootLogger=DEBUG, R
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = ../log/ooo.log
log4j.appender.R.Append = true
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
Example:
In a ooo.log.2011-10-20 i expect to find activity for 10-20
Instead i see first few seconds of 10-21
I expect behavior , as defined by the specification
‘.’yyyy-MM-dd Rollover at midnight each day. At midnight, on March
8th, 2002, /foo/bar.log will be copied to /foo/bar.log.2002-03-08.
Logging for the 9th day of March will be output to /foo/bar.log until
it is rolled over the next day.
Additionally, take a look at the timestamps. It appears to be random is consistent with the minute mark when my cron is called. Regardless of what it does though, appender’s behavior is not consistent with its’ description.

What’s going on here? Please help me understand and correct.
This may also be a symptom of multiple instances of a program logging to the same file; see more here and in other answers.
True. Rollover does not happen “on the hour”, but with the first logged statement AFTER the rollover time mark (hence your file timestamps). And there is no check if the name of the file to which the rolled over part needs to be renamed is free to use.