Ejemplo n.º 1
0
//InitLogger
func InitLogger(props utils.Properties) {
	logType := props.GetStringWithDefault("log.type", "sync")
	typeStr := ""
	if logType == "sync" {
		typeStr = `type="sync"`
	} else if logType == "asynctimer" {
		asyncInterval := props.GetIntWithDefault("log.asyncinterval", 5000000)
		typeStr = `type="asynctimer" asyncinterval="` + strconv.Itoa(asyncInterval) + `"`
	}
	minLevel := props.GetStringWithDefault("log.minlevel", "info")
	maxlevel := props.GetStringWithDefault("log.maxlevel", "error")
	logDir := props.GetStringWithDefault("log.dirs", "./log")
	segmentBytes := props.GetIntWithDefault("log.segment.bytes", 53687092)
	segmentRolls := props.GetIntWithDefault("log.segment.rolls", 5)

	logConfig := `
		<seelog ` + typeStr + ` minlevel="` + minLevel + `" maxlevel="` + maxlevel + `">
				<outputs formatid="main">
				    <console/>
						<rollingfile type="size" filename="` + logDir + `/server.log" maxsize="` + strconv.Itoa(segmentBytes) + `" maxrolls="` + strconv.Itoa(segmentRolls) + `"/>
					  <filter levels="error">
								<file path="` + logDir + `/error.log"/>
						</filter>
				</outputs>
				<formats>
						<format id="main" format="%Date(2006 Jan 02 3:04:05.000000000 PM MST) [%Level] %Msg%n"/>
				</formats>
		</seelog>
	`
	mylogger, err := log.LoggerFromConfigAsString(logConfig)
	//fmt.Println(logConfig)
	//mylogger, err := log.LoggerFromConfigAsFile("../config/log.xml")
	if err != nil {
		fmt.Println("load seelog config fail:", err)
	}
	log.ReplaceLogger(mylogger)
}