Skip to content

A Software Engineer's Logbook

Cloud Development, Productivity, and Learning

Menu
  • Home
Menu

Improving Logs in Visual Studio Team Services (VSTS) with special ‘tags’

Posted on June 22, 2018July 3, 2018 by Pete

I’ve been doing a lot with Azure Functions, Storage and DevTest Labs recently and leverage VSTS Build and Release to act as an ‘orchestration engine’ to automate Azure.  It’s easy to have all my Azure Powershell scripts and ARM templates stored & versioned with VSTS.  Even better is each checkin automatically firing off a build (with continuous integration setup) to run the scripts against Azure to ensure everything is working!

The one downside I’ve found is the logs – I get a huge text log and have to dig through to figure out what happened…  I recently learned about special ‘tags’ in VSTS, so dig through logs no longer!

The logs in Visual Studio Team Services are parsed automatically – if you know a little about the parser we can use it to our advantage!  Here’s a table of ‘tags’ and effects:

  • ##[error]  :  Highlight the line in the log red
  • ##[warning]  :  Highlight the line in the log orange
  • ##[section] : Highlight the line in the log green
  • ##[command] : Highlight the line in the log blue
  • ##[debug] : Highlight the line in the log gray (or purple)

There are also the VSTS Tasks you can use as well!  Details on those tags are listed here:  https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md .  There are some great ones at the link, but here are a few examples of what I’ve used in my Azure Powershell scripts:

  • ##vso[task.logissue type=warning;] : Log a warning that gets reported to the build summary page
  • ##vso[task.logissue type=error;] : Log an error that gets reported to the build summary page
  • ##vso[task.setvariable variable=testvar;]testvalue : Set a variable in one task that you can use in another task
  • ##vso[build.uploadlog]local file path : Upload a log file from the machine to the build results, helps in diagnosing issues

Here’s a quick demo to set this up for yourself!  First step is to log into VSTS.  If you don’t already have an account – no problem, you can get started for free by going to https://visualstudio.microsoft.com/ and clicking '”Get started for free” under Visual Studio Team Services.

image

Next – pick your source mapping (in my case I just hit ‘continue’ to accept the defaults), then choose a template (I picked ‘Empty pipeline’ link at the top to build from scratch).  If you need more info on the steps involved check out this documentation:  https://docs.microsoft.com/en-us/vsts/pipelines/get-started-designer?view=vsts

Once you have a build pipeline ready, let’s add our first task.  For this demonstration I’m using a basic Powershell task but you can use the same tags all over (console output from a basic command line tool, msbuild output, etc)!

image

In my case I’m using an inline powershell script as part of the demo – Here’s the script I used:

Write-Host "This is a standard log message!"
Write-Host " --------------------------------- "
Write-Host "These tags just colorize the logs to improve readability"
Write-Host "##[section] This is colored green!"
Write-Host "##[command] This is colored blue!"
Write-Host "##[debug] This is colored gray!"
Write-Host " --------------------------------- "
Write-Host "These tags colorize the logs and are picked up by the build"
Write-Host "##[warning] This is a warning!"
Write-Host "##vso[task.logissue type=warning;]This is another warning"  
Write-Host "##[error] This is an error!"
Write-Host "##vso[task.logissue type=error;]This is another error"
Write-Error “Actually fail the build task…”

Here’s what I entered in the VSTS Powershell Task:

image

And the results of the build!

image

image

Hope this helps – if you’ve found any other tricks to use in build and release please comment below!

 

2 thoughts on “Improving Logs in Visual Studio Team Services (VSTS) with special ‘tags’”

  1. Daniele says:
    July 3, 2018 at 7:46 am

    Thanks for the great article, I would definitely implement in my build.
    Just a quick note, the title reads “Visual Studio Team System” while in fact should be “Visual Studio Team Services” as you called it later

    1. Pete says:
      July 3, 2018 at 12:03 pm

      Good call – I’ll fix that, thanks!!

Comments are closed.

Subscribe to Posts

Peter Hauge

Contact me!
Email: pete @ hauge.cloud
Software Engineer at Microsoft

Recent Posts

  • Using the Azure Metadata Service for Virtual Machines
  • Authoring Azure ARM Templates
  • Recover Azure Queue Messages From the Poison Queue (unpoison messages!)
  • Creating and Deleting VSTS Team Projects with Powershell
  • How to easily switch versions of Azure PowerShell

Archives

Categories

  • ARM
  • Azure
  • Code
  • DevTest Labs
  • Powershell
  • Soft Skills
  • Troubleshooting
  • Uncategorized
  • Visual Studio
  • VSCode
  • VSTS
©2025 A Software Engineer's Logbook | Design: Newspaperly WordPress Theme