本文整理汇总了Golang中github.com/urandom/webfw.GetLogger函数的典型用法代码示例。如果您正苦于以下问题:Golang GetLogger函数的具体用法?Golang GetLogger怎么用?Golang GetLogger使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetLogger函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Handler
func (con Component) Handler(c context.Context) http.Handler {
mw, i18nFound := con.dispatcher.Middleware("I18N")
logger := webfw.GetLogger(c)
rnd := renderer.NewRenderer(con.dispatcher.Config.Renderer.Dir, "raw.tmpl")
rnd.Delims("{%", "%}")
if i18nFound {
if i18n, ok := mw.(middleware.I18N); ok {
rnd.Funcs(i18n.TemplateFuncMap())
}
} else {
logger.Infoln("I18N middleware not found")
}
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
params := webfw.GetParams(c, r)
err := rnd.Render(w, renderer.RenderData{"apiPattern": con.apiPattern},
c.GetAll(r), "components/"+params["name"]+".tmpl")
if err != nil {
webfw.GetLogger(c).Print(err)
}
})
}
开发者ID:RavenB,项目名称:readeef,代码行数:26,代码来源:component.go
示例2: Handler
func (con App) Handler(c context.Context) http.Handler {
cfg := readeef.GetConfig(c)
rnd := webfw.GetRenderer(c)
if cfg.Logger.Level == "debug" {
rnd.SkipCache(true)
}
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
action := webfw.GetMultiPatternIdentifier(c, r)
data := renderer.RenderData{}
if action == "history" {
params := webfw.GetParams(c, r)
data["history"] = "/web/" + params["history"]
}
if r.Method != "HEAD" {
err := rnd.Render(w, data, c.GetAll(r), "app.tmpl")
if err != nil {
webfw.GetLogger(c).Print(err)
}
}
w.Header().Set("X-Readeef", "1")
})
}
开发者ID:urandom,项目名称:readeef,代码行数:27,代码来源:app.go
示例3: Handler
func (con Auth) Handler(c context.Context) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
action := webfw.GetMultiPatternIdentifier(c, r)
sess := webfw.GetSession(c, r)
var resp responseError
switch action {
case "auth-data":
user := readeef.GetUser(c, r)
resp = getAuthData(user, sess, con.capabilities)
case "logout":
resp = logout(sess)
}
var b []byte
if resp.err == nil {
b, resp.err = json.Marshal(resp.val)
}
if resp.err == nil {
w.Write(b)
} else {
webfw.GetLogger(c).Print(resp.err)
w.WriteHeader(http.StatusInternalServerError)
return
}
})
}
开发者ID:urandom,项目名称:readeef,代码行数:29,代码来源:auth.go
示例4: Handler
func (con UserSettings) Handler(c context.Context) http.Handler {
cfg := readeef.GetConfig(c)
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := readeef.GetUser(c, r)
params := webfw.GetParams(c, r)
attr := params["attribute"]
var resp responseError
if r.Method == "GET" {
resp = getUserAttribute(user, attr)
} else if r.Method == "POST" {
buf := util.BufferPool.GetBuffer()
defer util.BufferPool.Put(buf)
buf.ReadFrom(r.Body)
resp = setUserAttribute(user, []byte(cfg.Auth.Secret), attr, buf.Bytes())
}
var b []byte
if resp.err == nil {
b, resp.err = json.Marshal(resp.val)
}
if resp.err != nil {
webfw.GetLogger(c).Print(resp.err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
})
}
开发者ID:urandom,项目名称:readeef,代码行数:35,代码来源:user-settings.go
示例5: Handler
func (con FeedUpdateNotificator) Handler(c context.Context) http.HandlerFunc {
var mutex sync.RWMutex
receivers := make(map[chan readeef.Feed]bool)
go func() {
for {
select {
case feed := <-con.updateFeed:
mutex.RLock()
readeef.Debug.Printf("Feed %s updated. Notifying %d receivers.", feed.Link, len(receivers))
for receiver, _ := range receivers {
receiver <- feed
}
mutex.RUnlock()
}
}
}()
return func(w http.ResponseWriter, r *http.Request) {
var err error
receiver := make(chan readeef.Feed)
mutex.Lock()
receivers[receiver] = true
mutex.Unlock()
defer func() {
mutex.Lock()
delete(receivers, receiver)
mutex.Unlock()
}()
f := <-receiver
readeef.Debug.Println("Feed " + f.Link + " updated")
resp := map[string]interface{}{"Feed": feed{
Id: f.Id, Title: f.Title, Description: f.Description,
Link: f.Link, Image: f.Image,
}}
var b []byte
if err == nil {
b, err = json.Marshal(resp)
}
if err != nil {
webfw.GetLogger(c).Print(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
}
}
开发者ID:yourchanges,项目名称:readeef,代码行数:57,代码来源:feed_update_notificator.go
示例6: Handler
func (con App) Handler(c context.Context) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
rnd := webfw.GetRenderer(c)
err := rnd.Render(w, nil, c.GetAll(r), "app.tmpl")
if err != nil {
webfw.GetLogger(c).Print(err)
}
}
}
开发者ID:yourchanges,项目名称:readeef,代码行数:10,代码来源:app.go
示例7: Handler
func (con Article) Handler(c context.Context) http.Handler {
logger := webfw.GetLogger(c)
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := readeef.GetUser(c, r)
params := webfw.GetParams(c, r)
action := webfw.GetMultiPatternIdentifier(c, r)
logger.Infof("Invoking Article controller with action '%s', article id '%s'\n", action, params["article-id"])
var articleId int64
var resp responseError
articleId, resp.err = strconv.ParseInt(params["article-id"], 10, 64)
if resp.err == nil {
id := data.ArticleId(articleId)
switch action {
case "fetch":
resp = fetchArticle(user, id)
case "read":
resp = articleReadState(user, id, params["value"] == "true")
case "favorite":
resp = articleFavoriteState(user, id, params["value"] == "true")
case "format":
resp = formatArticle(user, id, con.extractor, webfw.GetConfig(c), con.config)
}
}
var b []byte
if resp.err == nil {
b, resp.err = json.Marshal(resp.val)
}
if resp.err == nil {
w.Write(b)
} else {
webfw.GetLogger(c).Print(resp.err)
w.WriteHeader(http.StatusInternalServerError)
}
})
}
开发者ID:urandom,项目名称:readeef,代码行数:43,代码来源:article.go
示例8: Handler
func (con Component) Handler(c context.Context) http.Handler {
i18nmw, i18nFound := con.dispatcher.Middleware("I18N")
urlmw, urlFound := con.dispatcher.Middleware("Url")
logger := webfw.GetLogger(c)
cfg := readeef.GetConfig(c)
rnd := renderer.NewRenderer(con.dispatcher.Config.Renderer.Dir, "raw.tmpl")
rnd.Delims("{%", "%}")
if cfg.Logger.Level == "debug" {
rnd.SkipCache(true)
}
if i18nFound {
if i18n, ok := i18nmw.(middleware.I18N); ok {
rnd.Funcs(i18n.TemplateFuncMap())
}
} else {
logger.Infoln("I18N middleware not found")
}
if urlFound {
if url, ok := urlmw.(middleware.Url); ok {
rnd.Funcs(url.TemplateFuncMap(c))
}
} else {
logger.Infoln("Url middleware not found")
}
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
params := webfw.GetParams(c, r)
if r.Method != "HEAD" {
err := rnd.Render(w, renderer.RenderData{"apiPattern": con.apiPattern, "config": cfg},
c.GetAll(r), "components/"+params["name"]+".tmpl")
if err != nil {
webfw.GetLogger(c).Print(err)
}
}
})
}
开发者ID:urandom,项目名称:readeef,代码行数:42,代码来源:component.go
示例9: Handler
func (con User) Handler(c context.Context) http.Handler {
cfg := readeef.GetConfig(c)
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := readeef.GetUser(c, r)
action := webfw.GetMultiPatternIdentifier(c, r)
params := webfw.GetParams(c, r)
var resp responseError
switch action {
case "list":
resp = listUsers(user)
case "add":
buf := util.BufferPool.GetBuffer()
defer util.BufferPool.Put(buf)
buf.ReadFrom(r.Body)
resp = addUser(user, data.Login(params["login"]), buf.String(), []byte(cfg.Auth.Secret))
case "remove":
resp = removeUser(user, data.Login(params["login"]))
case "setAttr":
resp = setAttributeForUser(user, []byte(cfg.Auth.Secret), data.Login(params["login"]), params["attr"], []byte(params["value"]))
}
switch resp.err {
case errForbidden:
w.WriteHeader(http.StatusForbidden)
return
case errUserExists:
resp.val["Error"] = true
resp.val["ErrorType"] = resp.errType
resp.err = nil
case errCurrentUser:
resp.val["Error"] = true
resp.val["ErrorType"] = resp.errType
resp.err = nil
}
var b []byte
if resp.err == nil {
b, resp.err = json.Marshal(resp.val)
}
if resp.err != nil {
webfw.GetLogger(c).Print(resp.err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
})
}
开发者ID:urandom,项目名称:readeef,代码行数:53,代码来源:user.go
示例10: Handler
func (con Login) Handler(c context.Context) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := webfw.GetLogger(c)
sess := webfw.GetSession(c, r)
renderData := renderer.RenderData{}
if r.Method == "GET" {
if v, ok := sess.Flash("form-error"); ok {
renderData["form-error"] = v
}
} else {
if err := r.ParseForm(); err != nil {
l.Fatal(err)
}
username := data.Login(r.Form.Get("username"))
password := r.Form.Get("password")
repo := GetRepo(c)
conf := GetConfig(c)
u := repo.UserByLogin(username)
formError := false
if u.Err() != nil {
sess.SetFlash("form-error", "login-incorrect")
formError = true
} else if !u.Authenticate(password, []byte(conf.Auth.Secret)) {
sess.SetFlash("form-error", "login-incorrect")
formError = true
} else {
sess.Set(AuthUserKey, u)
sess.Set(AuthNameKey, username)
}
if formError {
http.Redirect(w, r, r.URL.String(), http.StatusTemporaryRedirect)
} else {
var returnPath string
if v, ok := sess.Flash("return-to"); ok {
returnPath = v.(string)
} else {
returnPath = webfw.GetDispatcher(c).Pattern
}
http.Redirect(w, r, returnPath, http.StatusTemporaryRedirect)
}
return
}
err := webfw.GetRenderCtx(c, r)(w, renderData, "login.tmpl")
if err != nil {
l.Print(err)
}
}
}
开发者ID:urandom,项目名称:readeef,代码行数:52,代码来源:login.go
示例11: Handler
func (con Login) Handler(c context.Context) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := webfw.GetLogger(c)
sess := webfw.GetSession(c, r)
data := renderer.RenderData{}
if r.Method == "GET" {
if v, ok := sess.Flash("form-error"); ok {
data["form-error"] = v
}
} else {
if err := r.ParseForm(); err != nil {
l.Fatal(err)
}
username := r.Form.Get("username")
password := r.Form.Get("password")
db := GetDB(c)
formError := false
if u, err := db.GetUser(username); err != nil {
sess.SetFlash("form-error", "login-incorrect")
formError = true
} else if !u.Authenticate(password) {
sess.SetFlash("form-error", "login-incorrect")
formError = true
} else {
sess.Set(authkey, u)
sess.Set(namekey, u.Login)
}
if formError {
http.Redirect(w, r, r.URL.String(), http.StatusTemporaryRedirect)
} else {
var returnPath string
if v, ok := sess.Flash("return-to"); ok {
returnPath = v.(string)
} else {
returnPath = webfw.GetDispatcher(c).Pattern
}
http.Redirect(w, r, returnPath, http.StatusTemporaryRedirect)
}
return
}
err := webfw.GetRenderCtx(c, r)(w, data, "login.tmpl")
if err != nil {
l.Print(err)
}
}
}
开发者ID:yourchanges,项目名称:readeef,代码行数:50,代码来源:login.go
示例12: Handler
func (con Component) Handler(c context.Context) http.HandlerFunc {
rnd := renderer.NewRenderer(con.dir, "raw.tmpl")
rnd.Delims("{%", "%}")
return func(w http.ResponseWriter, r *http.Request) {
params := webfw.GetParams(c, r)
err := rnd.Render(w, renderer.RenderData{"apiPattern": con.apiPattern},
c.GetAll(r), "components/"+params["name"]+".tmpl")
if err != nil {
webfw.GetLogger(c).Print(err)
}
}
}
开发者ID:yourchanges,项目名称:readeef,代码行数:15,代码来源:component.go
示例13: Handler
func (con Auth) Handler(c context.Context) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := readeef.GetUser(c, r)
resp := getAuthData(user)
b, err := json.Marshal(resp.val)
if err != nil {
webfw.GetLogger(c).Print(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
})
}
开发者ID:RavenB,项目名称:readeef,代码行数:17,代码来源:auth.go
示例14: Handler
func (con App) Handler(c context.Context) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
rnd := webfw.GetRenderer(c)
action := webfw.GetMultiPatternIdentifier(c, r)
data := renderer.RenderData{}
if action == "history" {
params := webfw.GetParams(c, r)
data["history"] = "/web/" + params["history"]
}
err := rnd.Render(w, data, c.GetAll(r), "app.tmpl")
if err != nil {
webfw.GetLogger(c).Print(err)
}
})
}
开发者ID:RavenB,项目名称:readeef,代码行数:17,代码来源:app.go
示例15: Handler
func (con Nonce) Handler(c context.Context) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
nonce := con.nonce.Generate()
type response struct {
Nonce string
}
resp := response{nonce}
b, err := json.Marshal(resp)
if err != nil {
webfw.GetLogger(c).Print(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
con.nonce.Set(nonce)
})
}
开发者ID:urandom,项目名称:readeef,代码行数:21,代码来源:nonce.go
示例16: Handler
func (con Auth) Handler(c context.Context) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
user := readeef.GetUser(c, r)
type User struct {
Login string
FirstName string
LastName string
Email string
Admin bool
}
type response struct {
Auth bool
User User
ProfileData map[string]interface{}
}
resp := response{
Auth: true,
User: User{
Login: user.Login,
FirstName: user.FirstName,
LastName: user.LastName,
Email: user.Email,
Admin: user.Admin,
},
ProfileData: user.ProfileData,
}
b, err := json.Marshal(resp)
if err != nil {
webfw.GetLogger(c).Print(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
}
}
开发者ID:yourchanges,项目名称:readeef,代码行数:40,代码来源:auth.go
示例17: Handler
func (con Search) Handler(c context.Context) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := readeef.GetUser(c, r)
params := webfw.GetParams(c, r)
query := params["query"]
var resp responseError
if resp.err = r.ParseForm(); resp.err == nil {
highlight := ""
feedId := ""
if vs := r.Form["highlight"]; len(vs) > 0 {
highlight = vs[0]
}
if vs := r.Form["id"]; len(vs) > 0 {
if vs[0] != "all" && vs[0] != "favorite" {
feedId = vs[0]
}
}
resp = search(user, con.searchIndex, query, highlight, feedId)
}
var b []byte
if resp.err == nil {
b, resp.err = json.Marshal(resp.val)
}
if resp.err != nil {
webfw.GetLogger(c).Print(resp.err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
})
}
开发者ID:RavenB,项目名称:readeef,代码行数:39,代码来源:search.go
示例18: Handler
func (con HubbubController) Handler(c context.Context) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
params := r.URL.Query()
pathParams := webfw.GetParams(c, r)
logger := webfw.GetLogger(c)
feedId, err := strconv.ParseInt(pathParams["feed-id"], 10, 64)
if err != nil {
webfw.GetLogger(c).Print(err)
return
}
repo := con.hubbub.repo
f := repo.FeedById(data.FeedId(feedId))
s := f.Subscription()
err = s.Err()
if err != nil {
webfw.GetLogger(c).Print(err)
return
}
logger.Infoln("Receiving hubbub event " + params.Get("hub.mode") + " for " + f.String())
data := s.Data()
switch params.Get("hub.mode") {
case "subscribe":
if lease, err := strconv.Atoi(params.Get("hub.lease_seconds")); err == nil {
data.LeaseDuration = int64(lease) * int64(time.Second)
}
data.VerificationTime = time.Now()
w.Write([]byte(params.Get("hub.challenge")))
case "unsubscribe":
w.Write([]byte(params.Get("hub.challenge")))
case "denied":
w.Write([]byte{})
webfw.GetLogger(c).Printf("Unable to subscribe to '%s': %s\n", params.Get("hub.topic"), params.Get("hub.reason"))
default:
w.Write([]byte{})
buf := util.BufferPool.GetBuffer()
defer util.BufferPool.Put(buf)
if _, err := buf.ReadFrom(r.Body); err != nil {
webfw.GetLogger(c).Print(err)
return
}
newArticles := false
if pf, err := parser.ParseFeed(buf.Bytes(), parser.ParseRss2, parser.ParseAtom, parser.ParseRss1); err == nil {
f.Refresh(pf)
f.Update()
if f.HasErr() {
webfw.GetLogger(c).Print(f.Err())
return
}
newArticles = len(f.NewArticles()) > 0
} else {
webfw.GetLogger(c).Print(err)
return
}
if newArticles {
con.hubbub.NotifyReceivers(f)
}
return
}
switch params.Get("hub.mode") {
case "subscribe":
data.SubscriptionFailure = false
case "unsubscribe", "denied":
data.SubscriptionFailure = true
}
s.Data(data)
s.Update()
if s.HasErr() {
webfw.GetLogger(c).Print(s.Err())
return
}
if data.SubscriptionFailure {
con.hubbub.removeFeed <- f
} else {
con.hubbub.addFeed <- f
}
})
}
开发者ID:RavenB,项目名称:readeef,代码行数:95,代码来源:hubbub.go
示例19: Handler
//.........这里部分代码省略.........
Active: u.Active,
Admin: u.Admin,
})
}
resp["Users"] = userList
case "add":
login := params["login"]
_, err = db.GetUser(login)
/* TODO: non-fatal error */
if err == nil {
err = errors.New("User with login " + login + " already exists")
break
} else if err != sql.ErrNoRows {
break
}
buf := util.BufferPool.GetBuffer()
defer util.BufferPool.Put(buf)
buf.ReadFrom(r.Body)
u := readeef.User{Login: login}
err = u.SetPassword(buf.String())
if err != nil {
break
}
err = db.UpdateUser(u)
if err != nil {
break
}
resp["Success"] = true
resp["Login"] = login
case "remove":
login := params["login"]
if user.Login == login {
err = errors.New("The current user cannot be removed")
break
}
var u readeef.User
u, err = db.GetUser(login)
if err != nil {
break
}
err = db.DeleteUser(u)
if err != nil {
break
}
resp["Success"] = true
resp["Login"] = login
case "active":
login := params["login"]
if user.Login == login {
err = errors.New("The current user cannot be removed")
break
}
active := params["state"] == "true"
var u readeef.User
u, err = db.GetUser(login)
if err != nil {
break
}
u.Active = active
err = db.UpdateUser(u)
if err != nil {
break
}
resp["Success"] = true
resp["Login"] = login
}
var b []byte
if err == nil {
b, err = json.Marshal(resp)
}
if err != nil {
webfw.GetLogger(c).Print(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Write(b)
}
}
开发者ID:yourchanges,项目名称:readeef,代码行数:101,代码来源:user.go
示例20: Handler
//.........这里部分代码省略.........
if newerFirst {
articles, err = db.GetUserFavoriteArticlesDesc(user, limit, offset)
} else {
articles, err = db.GetUserFavoriteArticles(user, limit, offset)
}
if err != nil {
break
}
} else if feedId == "tag:__all__" {
if newerFirst {
if unreadOnly {
articles, err = db.GetUnreadUserArticlesDesc(user, limit, offset)
} else {
articles, err = db.GetUserArticlesDesc(user, limit, offset)
}
} else {
if unreadOnly {
articles, err = db.GetUnreadUserArticles(user, limit, offset)
} else {
articles, err = db.GetUserArticles(user, limit, offset)
}
}
if err != nil {
break
}
} else if strings.HasPrefix(feedId, "tag:") {
tag := feedId[4:]
if newerFirst {
if unreadOnly {
articles, err = db.GetUnreadUserTagArticlesDesc(user, tag, limit, offset)
} else {
articles, err = db.GetUserTagArticlesDesc(user, tag, limit, offset)
}
} else {
if unreadOnly {
articles, err = db.GetUnreadUserTagArticles(user, tag, limit, offset)
} else {
articles, err = db.GetUserTagArticles(user, tag, limit, offset)
}
}
if err != nil {
break
}
} else {
var f readeef.Feed
var id int64
id, err = strconv.ParseInt(feedId, 10, 64)
if err != nil {
err = errors.New("Unknown feed id " + feedId)
break
}
f, err = db.GetFeed(id)
/* TODO: non-fatal error */
if err != nil {
break
}
f.User = user
if newerFirst {
if unreadOnly {
f, err = db.GetUnreadFeedArticlesDesc(f, limit, offset)
} else {
f, err = db.GetFeedArticlesDesc(f, limit, offset)
}
} else {
if unreadOnly {
f, err = db.GetUnreadFeedArticles(f, limit, offset)
} else {
f, err = db.GetFeedArticles(f, limit, offset)
}
}
if err != nil {
break
}
articles = f.Articles
}
resp["Articles"] = articles
}
var b []byte
if err == nil {
b, err = json.Marshal(resp)
}
if err == nil {
w.Write(b)
} else {
webfw.GetLogger(c).Print(err)
w.WriteHeader(http.StatusInternalServerError)
}
}
}
开发者ID:yourchanges,项目名称:readeef,代码行数:101,代码来源:feed.go
注:本文中的github.com/urandom/webfw.GetLogger函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论