And I don’t mean a, “oh, this drive is getting full, we should add more space…” kind of issue.
I mean a, “Hey, why is SharePoint down?!”, kind of issue!
Your C: drive unexpectedly running out of space is no joke!
You might be thinking, “Gee, thanks. This is 101 stuff, isn’t it?” And I certainly agree, which is why I’ve found this so baffling.
I think it might be compounded because it seems so obvious that it inevitably leads to finger-pointing.
That’s somebody else’s job, isn’t it? Well, this may be true, but if you’re in a situation where you’re trying to figure out how to purge those darn logs, I hope this post will save you valuable time.
I’ve found a few common culprits and some remedies I think you’ll find useful.
Outside of the obvious removal of large, unused files and making sure your SharePoint ULS logs are being properly managed (via Central Administration), you may still find a gradual creep of precious free-space disappearing into the ether.
There are 2 Logs that notoriously eat up space:
- IIS Logs – Usually, “C:inetpublogsLogFiles”
- Windows Fabric Trace Logs – Usually, “C:ProgramDataWindows FabricFabriclogTraces*”
Neither of these is configured Out-of-Box to manage log growth… wait, what?! Why?!
To give you something to do on your Saturday when your server decides to sling it into the fan, I suppose.
To determine where your space is being chewed up, you can use a free tool like WinDirStat to locate your particular space hogs.
If you find the above logs to be your bane, keep reading…
For IIS, Jim van de Erve wrote a great Microsoft Doc article about Managing IIS Log File Storage, in which he uses a simple .vbs script which you can set on a Scheduled Task to clear out IIS Logs that are older than x days. Here is the script:
sLogFolder = “c:inetpublogsLogFiles”
iMaxAge = 30 ‘in days
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
set colFolder = objFSO.GetFolder(sLogFolder)
For Each colSubfolder in colFolder.SubFolders
Set objFolder = objFSO.GetFolder(colSubfolder.Path)
Set colFiles = objFolder.Files
For Each objFile in colFiles
iFileAge = now-objFile.DateCreated
if iFileAge > (iMaxAge+1) then
objFSO.deletefile objFile, True
end if
Next
Next
You can copy this into Notepad and save it as a .vbs file; then, run it as you normally would “As Administrator” through PowerShell.
NOTE: You’ll want to verify the path in Line 1 is accurate and you’ll also want to adjust the number of days in line 2 to whatever is appropriate for your server(s).
For the Fabric Trace Logs, you can just delete the old trace files, but eventually, they will fill back up. I’d recommend the following setting be applied to Performance Monitor: Under the “User Defined” Collector Sets, highlight the “Fabric Traces” Data Collector, but then ‘right-click’ the file name in the right window and select, “Properties”.
Under the File tab, select “Circular”. Then you’ll need to stop and re-start the collector.
Now the new file will just overwrite itself with fresh data once it reaches the max size, instead of continuing to create new files over and over.
Prefer to get some help?
Let IncWorx carry the load and set up log retention on all your SharePoint servers with our low-cost, Microsoft Pay-As-You-Go Consulting.
We also specialize in support for all your SharePoint, Office 365, and cloud needs!