diff --git a/log/logger.go b/log/logger.go
index cb52733191c5a89bebf88bd186f19691f084a2a4..2e856d3b76aed7c7fb1c4e577aeccfd93654c2ab 100644
--- a/log/logger.go
+++ b/log/logger.go
@@ -103,12 +103,18 @@ func log(level Level, args ...interface{}) {
 	defer l.lock.Unlock()
 	if level <= l.Loglevel {
 		l.builder.WriteString(time.Now().Format(time.RFC3339))
+		l.builder.WriteRune('\t')
 		l.builder.WriteString(prefix(level))
-		file, function, line := callers()
-		l.builder.WriteString(file)
+		l.builder.WriteRune('\t')
+		function, line := callers()
+		functionSplitted := strings.SplitAfter(function, "/")
+		function = functionSplitted[len(functionSplitted) - 1]
 		l.builder.WriteString(function)
+		l.builder.WriteRune(':')
 		l.builder.WriteString(strconv.Itoa(line))
+		l.builder.WriteRune('\t')
 		l.builder.WriteString(fmt.Sprint(args...))
+		l.builder.WriteRune('\n')
 		_,err := l.Out.Write([]byte(l.builder.String()))
 		if err != nil {
 			panic(err)
@@ -116,12 +122,12 @@ func log(level Level, args ...interface{}) {
 	}
 }
 
-func callers() (string, string, int) {
+func callers() (string, int) {
 	pc := make([]uintptr, 15)
-	n := runtime.Callers(0, pc)
+	n := runtime.Callers(4, pc)
 	frames := runtime.CallersFrames(pc[:n])
 	frame, _ := frames.Next()
-	return frame.File, frame.Function, frame.Line
+	return frame.Function, frame.Line
 }
 
 func prefix(level Level) string {