Conditional logging with Logback in Scala

Hello Folks

In my project , i got a scenario where I wanted conditional logging. I was using Logback framework for the same. I wanted to set different logging level for staging and production.

Either i could do manually changes in logback.xml for logging level for staging and production both. But this is not the good practice. Then I found the solution of implementing the conditions in logback.xml itself and that provided me the better and efficient solution.

First, we will see the way of implementing the conditions in logback.xml. There are 2 ways to do the same :

if-then form

if-then-else form

Now we have learnt how to make conditions. Now we will see what conditional expressions we can use in logback.xml.

There are 3 ways to do this :

1. Using property() or p() :

Only context properties or system properties are accessible. For a key passed as argument, the property() or its shorter equivalent p() methods return the String value of the property.

2. Using isDefined() :

It isĀ used to check whether a property is defined or not.

3. Using isNull() :

It is used to check whether a property is null or not.

A full Example to make different logging level for staging and production.

Set the property as : export runMode=prod

Cheers !!!

Written by 

Rishi is a Lead Consultant, with experience of more than 7 years. Rishi is product focused developer who loves developing both front-end user interfaces and scalable back-end infrastructure. He is a good team player, quick learner and a humble person. He has good time management skills, aimed to give best results and fully dedicated towards his work & responsibilities. He is able to work as individual and as well as in team. He loves to share his knowledge, therefore he often writes technical blogs.

1 thought on “Conditional logging with Logback in Scala

Leave a Reply

%d bloggers like this: