Remove-Item does not return the $File object into the pipeline. Therefore your Out-File after the foreach does not work. You need to pipe the $File object to Out-File within your if statement as suggested in below Gist.
It is unfortunate. Remove-Item works across multiple PSProviders (files, registry, certificates, etc.). To provide cross-provider familiarity and functionality, some features we think should be there are not, such as the -Passthru switch. And if you look at the help page for Remove-Item you will see there are no outputs.
If you want to do something in the pipeline, checkout Tee-Object. But keep in mind this would have to be upstream to the delete action (here you would be logging intent and not outcome). You might also want to look at result codes and error actions.