diff --git a/common/go/src/asapo_common/logger/logger.go b/common/go/src/asapo_common/logger/logger.go
index 0f026aa18b9e777a1b72089ca32d3685b97cf6f0..ffa2c4ce888c4358beb8488e7b22065bc3fe28c7 100644
--- a/common/go/src/asapo_common/logger/logger.go
+++ b/common/go/src/asapo_common/logger/logger.go
@@ -17,6 +17,7 @@ const (
 )
 
 type Logger interface {
+	WithFields(args map[string]interface{}) Logger
 	Info(args ...interface{})
 	Debug(args ...interface{})
 	Fatal(args ...interface{})
diff --git a/common/go/src/asapo_common/logger/logrus_logger.go b/common/go/src/asapo_common/logger/logrus_logger.go
index 4625f27492f47efe5d14ed1a1032b4810c418572..d41432252033ee351827494990efc9c6b36bf5a8 100644
--- a/common/go/src/asapo_common/logger/logrus_logger.go
+++ b/common/go/src/asapo_common/logger/logrus_logger.go
@@ -13,6 +13,13 @@ func (l *logRusLogger) SetSource(source string) {
 	l.source = source
 }
 
+
+func (l *logRusLogger) WithFields(args map[string]interface{}) Logger {
+	l.logger_entry = l.entry().WithFields(args)
+	return l
+}
+
+
 func (l *logRusLogger) entry() *log.Entry {
 	if l.logger_entry != nil {
 		return l.logger_entry
diff --git a/common/go/src/asapo_common/logger/mock_logger.go b/common/go/src/asapo_common/logger/mock_logger.go
index 484b86cb0175db0e801cc3e11cf42592ecef123a..58c1df744f4b17e4c402290bb22f932347fd7512 100644
--- a/common/go/src/asapo_common/logger/mock_logger.go
+++ b/common/go/src/asapo_common/logger/mock_logger.go
@@ -16,6 +16,11 @@ func SetMockLog() {
 	my_logger = &MockLog
 }
 
+func (l *MockLogger) WithFields(args map[string]interface{}) Logger {
+	l.Called(args)
+	return l
+}
+
 func UnsetMockLog() {
 	my_logger = &logRusLogger{}
 }