예제 #1
0
파일: server.go 프로젝트: jmcarbo/webdav
func newLogger(execDir string) {
	logPath := execDir + "/log/webdav.log"
	os.MkdirAll(path.Dir(logPath), os.ModePerm)

	f, err := os.OpenFile(logPath, os.O_WRONLY|os.O_APPEND|os.O_CREATE, os.ModePerm)
	if err != nil {
		qlog.Fatal(err)
	}

	logger = qlog.New(f, "", qlog.Ldate|qlog.Ltime)
	logger.Info("Start logging webdav...")
}
예제 #2
0
func main() {

	server := martini.Classic()
	config := InitConfig()

	//添加中间件
	server.Use(render.Renderer(render.Options{ //render中间件可以把对象方便的序列化为xml或者json
		Directory:  "./html",
		Extensions: []string{".html"},
		Charset:    "UTF-8",
	}))
	server.Use(martini.Static("public")) //静态文件服务

	//添加路由
	//第一个参数是url路径,
	//之后的参数是处理该路径请求的处理函数,
	//可以添加多个,依次调用
	//方法名表示该路径的HTTP方法,表示只能用GET访问该路径。
	server.Get("/", cookie.Bind(UserCookie{}), handleHome)

	//Group是父路径下添加子路径,下面url分别表示/sched/all, /sched/all, /sched/delete。
	//在父路径里添加的处理函数在子路径中都会运行,
	//比如下面的cookie.Bind(UserCookie{}),该方法返回值是一个函数,表示这个路径以及所有的子路径都绑定了一个cookie。
	server.Group("/sched", func(r martini.Router) {
		r.Post("/add", binding.Form(Sched{}), handleAddSched)
		r.Get("/all", handleGetSched)
		r.Post("/delete", handleDelSched)
	}, cookie.Bind(UserCookie{}))

	server.Group("/user", func(r martini.Router) {
		r.Post("/login", binding.Form(UserLoginForm{}), LoginHandler)
		r.Post("/logout")
		r.Post("/register", binding.Form(UserRegisterForm{}), RegisterHandler)
		r.Post("/checklogin", cookie.Bind(UserCookie{}), CheckLoginHandler)
		r.Group("/bkimg", func(rr martini.Router) {
			rr.Post("/upload", binding.MultipartForm(Bkimg{}), UploadBkimg)
			rr.Get("/get", GetBkimg)
		}, cookie.Bind(UserCookie{}))

	})

	//映射服务
	logger := log.New(os.Stdout, "[martini] ", log.Llevel|log.Lshortfile|log.Lmodule)
	//Map方法传入的对象可以被传入到处理函数的对应参数中。
	server.Map(logger)
	server.Map(config)

	server.RunOnAddr(":" + config.Server.Port)

}
예제 #3
0
func (l *QiniuLogger) Init(w interface{}) *QiniuLogger {
	switch writer := w.(type) {
	case io.Writer:
		l.writer = writer
	case string:
		fd, err := os.OpenFile(writer, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777)
		if err != nil {
			panic(err)
		}
		l.writer = fd
	default:
		l.writer = os.Stdout
	}

	l.logger = log.New(l.writer, "[filesync]", log.LstdFlags|log.Llevel)
	return l
}