Skip to content
VediramVediramSupport

Collecting logs for support

supportlogsdiagnostics

When to use this page

You have a Levee problem that the other troubleshooting pages don't solve, and you want to send Vediram Support everything needed to investigate it in one go.

What you can do yourself

  1. Write down what you were doing, what you expected, and what happened.
  2. Copy any error message exactly, or take a screenshot.
  3. Note the time it happened. Logs are easier to search with a time.
  4. If the Levee app showed the "Levee can't start cleanly" window, click Copy details for IT and paste the text into an email or a file.
  5. Send all of this to your IT team, or open a support request (below).

Your IT team can then collect the logs with the script on this page.

Open a support request

  1. Go to Support requests and sign in with your Vediram account.
  2. Choose the category that fits (bug, question, feature or other).
  3. Describe what you did, what you expected and what happened, and paste any exact error message.
  4. Attach the zip file from your IT team (and the Copy details for IT text, if you have it).

If your account cannot open support requests, ask your Vediram administrator to grant you access.

For your IT team

What to collect

ItemHow to get itWhy
Health reportlevee doctor --jsonService, engine, Windows Containers feature, disk, runtime image and logging state
Runtime statuslevee runtime status --jsonProvisioning phase and last error
Startup Doctor reportCopy details for IT in the Levee appThe failed checks, with technical details and versions
Diagnostic logslevee log tail --since 1d --jsonService, proxy and app events for the user's projects
Audit excerptlevee audit tail --lines 500 --jsonWhat was allowed, denied and approved around the problem
Effective policylevee policy show --jsonThe policy the machine is actually enforcing
Installer logs%SystemRoot%\Temp\levee-prepare-host.log and your verbose MSI logOnly for install or upgrade problems
Engine eventsWindows Event Log, source dockerOnly for container engine problems

Run the commands as the user who has the problem. levee log tail shows that user's own logs and projects. An administrator can add --all in an elevated session to read every user's and project's logs.

If levee audit tail fails with "Cannot read the audit log at" followed by a SQLite error 14, the machine runs a Levee version earlier than 0.64.0, where standard users could not read the audit log. Update Levee.

Review before you send

Levee's diagnostic logs are designed not to contain secrets, document content, SQL text or connection strings. The audit trail is different: it records what the agent did, including destination URLs, file paths, database queries (SQL text) and web search queries. Review the audit excerpt, and remove anything your organization does not allow you to share. Policy files contain rules and environment variable names, never the keys themselves.

Bundle everything with PowerShell

Run this in PowerShell 7. It creates a zip file in your temp folder and prints its path. Run it in an elevated session to include all users' logs and the installer logs.

$stamp  = Get-Date -Format 'yyyyMMdd-HHmmss'
$outDir = Join-Path $env:TEMP "levee-support-$stamp"
New-Item -ItemType Directory -Path $outDir | Out-Null

$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(
    [Security.Principal.WindowsBuiltInRole]::Administrator)

levee --version                        *> (Join-Path $outDir 'version.txt')
levee doctor --json                    *> (Join-Path $outDir 'doctor.json')
levee runtime status --json            *> (Join-Path $outDir 'runtime-status.json')
levee policy show --json               *> (Join-Path $outDir 'policy.json')
levee project list --json              *> (Join-Path $outDir 'projects.json')
levee audit tail --lines 500 --json    *> (Join-Path $outDir 'audit-excerpt.json')
if ($isAdmin) {
    levee log tail --since 1d --all --json *> (Join-Path $outDir 'logs.json')
} else {
    levee log tail --since 1d --json       *> (Join-Path $outDir 'logs.json')
}

Get-Service LeveeService, LeveeContainerEngine -ErrorAction SilentlyContinue |
    Select-Object Name, Status, StartType |
    Out-File (Join-Path $outDir 'services.txt')

$cv = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
"{0} {1} build {2}.{3}" -f $cv.ProductName, $cv.DisplayVersion, $cv.CurrentBuild, $cv.UBR |
    Out-File (Join-Path $outDir 'windows.txt')

Get-WinEvent -FilterHashtable @{ LogName = 'Application'; ProviderName = 'docker'; StartTime = (Get-Date).AddDays(-1) } `
    -ErrorAction SilentlyContinue |
    Select-Object TimeCreated, LevelDisplayName, Message |
    Export-Csv (Join-Path $outDir 'engine-events.csv') -NoTypeInformation

if ($isAdmin) {
    $prep = Join-Path $env:SystemRoot 'Temp\levee-prepare-host.log'
    if (Test-Path $prep) { Copy-Item $prep $outDir }
    $instLogs = Join-Path $env:ProgramData 'Vediram\Levee\installer\logs'
    if (Test-Path $instLogs) { Copy-Item $instLogs (Join-Path $outDir 'installer-logs') -Recurse }
}

$zip = "$outDir.zip"
Compress-Archive -Path "$outDir\*" -DestinationPath $zip
Remove-Item $outDir -Recurse -Force
Write-Host "Support bundle: $zip"

If levee is not recognized, open a new PowerShell window after installation, or use the full path & "$env:ProgramFiles\Vediram\Levee\bin\levee.exe".

For an installation problem, also attach the verbose MSI log. See Installation fails a check.

Where Levee keeps its files

For reference, if Support asks for a specific file:

LocationContents
%ProgramData%\Vediram\Levee\logs\Diagnostic logs (compressed JSON lines), per machine, project and user
%ProgramData%\Vediram\Levee\levee-audit.db and levee-audit.jsonlThe audit trail
%ProgramData%\Vediram\Levee\policy.jsonThe effective policy
%ProgramData%\Vediram\Levee\config.jsonLogging configuration
%ProgramData%\Vediram\Levee\installer\logs\Installer wrapper logs
%SystemRoot%\Temp\levee-prepare-host.logInstaller prerequisite checks
%ProgramFiles%\Vediram\Levee\Levee's programs (the app, bin\ with the service, CLI and proxies, and engine\)

See Files & locations and Logging.