Seq

Seq creates the visibility you need to quickly identify and diagnose problems in complex applications and microservices. Empower your team to build better software by centralizing, searching, and alerting on structured application logs.
https://getseq.net

source https://getseq.net
Image source https://getseq.net

Every project we used to create our own logging tables and GUI to access those tables. No More!

We now install Seq in the first sprint and start logging. Seq provides the right toolset to investigate issues, gives insights we never seen before and is free if you can live with the limitations. Purging the logging after a set timeinterval is part of the features. And everything is done from a web interface.

So far we’ve learned that you need to log on different levels and you’ll need a structured logging nuget like serilog.

Want to start logging too? Here are some links:

Posted in Development, Tooling | Tagged , , | Leave a comment

Serilog


Image courtesy of Ricardo Gomez Angel / unsplash.com

https://www.nuget.org/packages/serilog

With Serilog we can log with named properties. The advantage is that processing of the log(file) is no longer needed as it is already structured. You can stil output plain text though.

Posted in Development, Tooling | Tagged , , | Leave a comment

Cannot upload task attachment file

We run Pester tests during our tfs release. The output is published as test results and saved to the log files. To save the output.xml to the log file we use task.uploadfile from azure pipeline tasks. This task failed because we had a space between the closing bracket and the file parameter.

##[section]Starting: Add output.xml to log files
==============================================================================
Task         : PowerShell
Description  : Run a PowerShell script
Version      : 1.2.3
Author       : Microsoft Corporation
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613736)
==============================================================================
##[command]. 'C:\Users\service\AppData\Local\Temp\277e9445-a3b5-4910-8cba-5e0aadfedc7e.ps1'
##[error]Unable to process command '##vso[task.uploadfile] D:\Software\TFS\Agents\1\work\r10\a\output.xml' successfully. Please reference documentation (http://go.microsoft.com/fwlink/?LinkId=817296)
##[error]Cannot upload task attachment file, attachment file location is not specified or attachment file not exist on disk
##[section]Finishing: Add output.xml to log files

The solution was to make sure there was nog space between the closing bracket and the file parameter in the powershell task:

Write-Host "##vso[task.uploadfile]$(System.DefaultWorkingDirectory)\output.xml"
# there is no space -here---------^
Posted in Development | Tagged , , , , | Leave a comment

Mojave update without issues

My macbook downloaded the Mojave update and presented the question:

to update or not to update?

TLDR: no issues on my MacBook Pro (Retina, 15-inch, Mid 2015) except for Little Snitch 3 which is incompatible and I had to upgrade to version 4 for €25

Hardware

MacBook Pro (Retina, 15-inch, Mid 2015)
Processor 2,2 GHz Intel Core i7
Memory 16 GB 1600 MHz DDR3
SSD 256 Gb
Graphics Intel Iris Pro 1536 MB

Installation

The update took about 30 minutes and that’s all I have to say about that.

Apps

After the update Mojave I first updated the Logitech control center since it was the only app reported to be incompatible.

Then I looked at Little Snitch, because of the error message “Not supported OS X version”. The download button took me to the version 4 update which is compatible with Mojave. The upgrade license was €25.

All other apps just worked or had an update pending. I was most happy about Camtasia 2, Parallels Desktop 11 and Alfred 2 still working since those apps would make the update to Mojave to expensive in licenses. I would have restored my Time Machine backup. Check https://roaringapps.com for compatibility of your favourite apps.

Hick-up

During boot I notice a hick-up. After the progress bar under the apple logo gets to about 75% the screen flashes. A lot of people have noticed it.
One time when I booted in clamshell-modus with an external monitor on mini display port, the progress bar took about 2 minutes to completion. But I never noticed it again after that one time.
Normal boot time is 30 seconds.

Why upgrade?

1. I want to have my macbook running the latest and greatest macOS.
2. New features like continuity camera and quick look edit can be handy (Whats-new)

Update

Little snitch rolled out an update in december 2018 that fixes the hick-up

Posted in Tooling | Tagged , | Leave a comment

TFS tips #4 – Visual Studio Pricing

💡 This post is part of my TFS tips where I write about how we make the most of TFS (on premise)

Image courtesy of ratch0013 / FreeDigitalPhotos.net
We have a Visual Studio Enterprise subscription for all our developers. Microsoft has created an overview of everything that is included in the subscription like Azure credits, Office 365 and Pluralsight.

You’ll find the list here: https://visualstudio.microsoft.com/vs/pricing
Download a pdf version here: pdf

Posted in Development | Tagged , , , , | Leave a comment

TFS tips #3 – Multiple release pipelines queue

💡 This post is part of my TFS tips where I write about how we make the most of TFS (on premise)

We have multiple applications being released to the same server. For every application we have a CI/CD release pipeline. The problem we faced occurs when two developers checkin on different applications. We want only one active release of all pipelines.

Demand

First we tried to create a deployment queue with only one agent in it. Unfortunately we had insufficient rights. But this set us in the right direction.

We then added a demand for one of the agents in the queue and added that same demand to all release pipelines. This queues the releases as the same agent must do them.

Hopefully not everybody adds a demand for “our” agent. 🙄

Posted in Development, Tooling | Tagged , , , | Leave a comment

Log levels explained

I’m always struggling with the method/level to use when logging from my application. In his Modern Structured Logging With Serilog and Seq pluralsight course Jason Roberts explains it this way:

Level Explain Example
Verbose how technical “calculated hash {hash} for order {id}”
Debug how functional “applied vip discount to user {user}”
Information what “created order {id}”
Warning problems “save of order {id} failed, will retry in 5 sec”
Error unexpected failure “saved of order {id} failed”
Fatal critical/stop “unhandled exception”

We have adopted this and have improved our logging quality.

If everything seems to be going well, you have obviously overlooked something
Murphy’s law

Posted in Development | Tagged , | Leave a comment