if you delete a file that some process still has open (in your case probably the process that writes the log file) your file system won't free the claimed disk space until this process dies (although the file isn't visible to other processes anymore - including 'ls' and 'du').
The different observations of the behaviour of the df and du commands results from the fact that df really displays the free disk space while du sums up all claimed space of all directory enties it can stat (b.t.w. this is why du takes longer to complete).
You have to end the process that is writing the log file. If you want to securely truncate a file and immediately reclaim all the disk space, use the following shell (bash) construct
After that, the file's size is zero bytes.