func (m *Logger) formatMessage(callDepth int, logMsg string) string {
	formattedMsg := logMsg
	if m.log.Flags()&(log.Lshortfile|log.Llongfile) == 0 {
		fileName, lineNo := m.GetFileAndLine(callDepth)
		gRoutineId := syscall.Getgid()
		formattedMsg = fmt.Sprintf("%d %s:%d - %s", gRoutineId, fileName, lineNo, logMsg)
	}
	return formattedMsg
}
/*
Level, Prefix and LogWriter can be read and supplied from outside as ENV variables or Command Line Parameters
func NewLogger(level int, logPrefix string, logWriter io.Writer, logFlags int) *Logger {
ml := defaultLogger()
ml.level = LogLevel(level)
ml.log = log.New(logWriter, logPrefix, logFlags)
return ml
}

///////////////////////////////////////////////////////////////
Helper functions from Interface ==> Logger
///////////////////////////////////////////////////////////////
package impl
import (
	"bytes"
	"encoding/gob"
	"fmt"
	"io"
	"log"
	"os"
	"path"
	"runtime"
	"strconv"
	"sync"
	"syscall"
	"tgdb"
	"time"
)
type Logger struct {
	depth int
	level tgdb.LogLevel
	log   *log.Logger
	size int
	count int
	baseDir string
	fileNameBase string
	currentIndex int
	mu     sync.Mutex
}
func defaultLogger() *Logger {
	ml := Logger{
		depth: tgdb.DefaultCallDepth,
		level: tgdb.DefaultLogLevel,
		log: log.New(os.Stdout, tgdb.DefaultLogPrefix, tgdb.DefaultLogFlags),
	}
	return &ml
}