Hi there,
On Linux App Service, only whatever the main container process writes to stdout or stderr is captured by Log stream (az webapp log tail
) and the SCM Docker logs. Anything your startup.sh
echoes before that main process is launched never reaches the pipeline—so you won’t see echo "TEST STARTUP"
in Log stream or your Azure DevOps console.
How to surface your startup.sh
output
Turn on log streaming (once per app)
Portal ▸ Monitoring ▸ App Service logs
─ Application logging (Filesystem) → On
Or:
az webapp log config -g <rg> -n <app> --application-logging filesystem
Redirect everything in startup.sh
to stdout / stderr
# startup.sh
exec 1>/dev/stdout 2>/dev/stderr # route subsequent output
echo "==== WordPress container initialising ===="
or, for a single line
echo "TEST STARTUP" >&2 # write explicitly to stderr
Tail the stream
az webapp log tail -g <rg> -n <app>
(or open Monitoring ▶ Log stream in the portal).
If you still need early-startup diagnostics
Writing to a file under /home/LogFiles/
(e.g., echo … >> /home/LogFiles/StartupLog.txt
) is fine for debugging; you can open the file via Kudu/SSH. But for day-to-day visibility, redirecting to stdout/stderr is the cleanest approach.
Why nothing shows in the Azure DevOps release logs DevOps captures the build/deploy pipeline only—it doesn’t stream what happens inside the running container. Use Log stream or Azure Monitor for runtime output.
Hope that clears things up!
Best Regards,
Jerald Felix