Archive Sitecore logs with 7zip and Task Scheduler

Posted 30 Dec 2018 by Marek Musielak

archive sitecore logs with 7zip and task scheduler

This article explains how to automatically zip your Sitecore log files with 7zip and Windows Task Scheduler.

First thing you want to do is downloading 7zip and installing it on your server. You can download it from www.7-zip.org site.

Next you add 7zip directory to Windows path variable:

add 7zip to windows path variable

Once it's all done, you need to create a directory where your zipped log files will be stored, e.g. C:\mysitecore-logs-backup.

Now create a new bat file in the directory above and name it e.g. archiveLogs.bat. Edit the file and use code:

>FOR /f %%a IN ('WMIC OS GET LocalDateTime ^| find "."") DO SET 'CurrentTimeStamp=%%a"

:: sets FormattedDate to current date in yyyy-MM-dd format
SET "FormattedDate=%CurrentTimeStamp:~0,4%-%CurrentTimeStamp:~4,2%-%CurrentTimeStamp:~6,2%"

:: replace path below with the folder containing log files
SET "SourceDir=C:\inetpub\wwwroot\mysitecore.local\App_Data\logs"

:: replace path below with the folder where zip files will live
SET "ZipLocation=C:\mysitecore-logs-backup\logs-%FormattedDate%.zip"

:: use the number below to set after how many days log files should be archived
SET "LogLifetime=7"

FORFILES /S /P %SourceDir% /M *.txt /D -%LogLifetime% /C "cmd /c 7z a -aoa -tzip %ZipLocation% @path -sdel"

You may notice there are some variables in the file. Set both SourceDir, ZipLocation and LogLifetime to the correct values. Save the bat file and run it just to test if it works. You may want to set some higher value for LogLifetime before testing just so there are some log files left for your further tests if needed.

The last parameter of 7z command (-sdel) assures that after the file is successfully added to the archive, it's removed from the drive automatically.

When all works, start Run and type taskschd.msc to open Task Scheduler. Use the following settings:

  • In General tab type the name of your task and select Run whether user is logged in or not radio button.
  • On Triggers tab create a schedule for your task, e.g. At 2:00 AM every day.
  • On Actions tab create a new Start a program action and select your bat file.

You may set more settings on other tabs but in most cases it should not be needed. Now save your task, refresh Task Scheduler Library if your task haven't appeared in the list automatically, right click and run. This will start a test execution of your task. Again, you may want to set some higher value for LogLifetime before testing. If everything went smoothly, that's all. Now your old log files will no longer clutter your drive and will be nicely archived.

Thank you for reading. You can find more Sitecore related articles here.

Comments? Find me on or Sitecore Chat