The way I'm thinking, the easiest thing for you to do is to follow these steps:
1) Create a daily copy of the log file at a certain time of the day (let's say Midnight)
2) Stop logging and delete original log file
3) Re-create original file and continue logging
All together you would have three log files at any time (PLCDataLog.log, CopyofPLCDataLog.log and new DailyCopyofPLCDataLog.log).
You can run one instance of Quick Daily Chart which would be using CopyofPLCDataLog.log, which whenever used is only a copy of the current PLCDataLog.log.
You can also modify the solution and run another instance of Quick Daily Chart which would be using DailyCopyofPLCDataLog.log (this instance you would run only when you might need it).
Quick Daily Chart code already has this line:
File.Copy("C:\PLCDataLog.log", "C:\CopyofPLCDataLog.log", True)
------------------
The following lines should be used with some sort of a timer, checking for that specific time of the day when you want to perform those actions, inside BasicDataLogger.vb:
Creating a new Daily copy of the log file would use this line:
File.Copy("C:\PLCDataLog.log", "C:\DailyCopyofPLCDataLog.log", True)
Deleting the original log file would use this line:
File.Delete("C:\PLCDataLog.log")
Re-creating that same log file would use this line:
File.Create("C:\PLCDataLog.log")
I am not sure if the StreamWriter needs to be closed to release the log file so it could be deleted and re-created.
Archie might suggest a possible code.
It might be easier just to do all these things once the maximum number of points has been reached.