func Panicln(v ...interface{}) {
	s := fmt.Sprintln(v...)
	logger.Output(2, "PANIC: "+s)
	panic(s)
}
Panicln is equivalent to Println() followed by a call to panic().
package log
import (
	"fmt"
	"log"
	"os"
	"github.com/davecgh/go-spew/spew"
)
var (
	logger      = log.New(os.Stderr, "", log.Lshortfile)
	debug       = os.Getenv("CLANG_SERVER_DEBUG")
	debugLogger = log.New(os.Stderr, "DEBUG: ", log.Lshortfile)
)
func Print(v ...interface{}) {
	logger.Output(2, fmt.Sprint(v...))
}
func Printf(format string, v ...interface{}) {
	logger.Output(2, fmt.Sprintf(format, v...))
}
func Println(v ...interface{}) {
	logger.Output(2, fmt.Sprintln(v...))
}
func Fatal(v ...interface{}) {
	logger.Output(2, "FATAL: "+fmt.Sprint(v...))
	os.Exit(1)
}
func Fatalf(format string, v ...interface{}) {
	logger.Output(2, "FATAL: "+fmt.Sprintf(format, v...))
	os.Exit(1)
}
func Fatalln(v ...interface{}) {
	logger.Output(2, "FATAL: "+fmt.Sprintln(v...))
	os.Exit(1)
}
func Panic(v ...interface{}) {
	s := fmt.Sprint(v...)
	logger.Output(2, "PANIC: "+s)
	panic(s)
}
func Panicf(format string, v ...interface{}) {
	s := fmt.Sprintf(format, v...)
	logger.Output(2, "PANIC: "+s)
	panic(s)
}