Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
70108131
Commit
70108131
authored
Mar 25, 2016
by
astaxie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1832 from JessonChan/log_enhancement
Log enhancement
parents
4dbbae61
45f23901
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
96 additions
and
98 deletions
+96
-98
admin.go
admin.go
+3
-2
app.go
app.go
+14
-14
redis_test.go
cache/redis/redis_test.go
+1
-2
ssdb_test.go
cache/ssdb/ssdb_test.go
+2
-1
config.go
config.go
+4
-3
input_test.go
context/input_test.go
+1
-1
filter_test.go
filter_test.go
+0
-6
hooks.go
hooks.go
+2
-1
log.go
log.go
+15
-20
conn.go
logs/conn.go
+1
-1
console.go
logs/console.go
+1
-1
es.go
logs/es/es.go
+1
-1
file.go
logs/file.go
+1
-1
log.go
logs/log.go
+0
-0
multifile.go
logs/multifile.go
+1
-1
smtp.go
logs/smtp.go
+1
-1
migration.go
migration/migration.go
+17
-17
parser.go
parser.go
+3
-2
router.go
router.go
+9
-8
router_test.go
router_test.go
+6
-5
staticfile.go
staticfile.go
+3
-2
template.go
template.go
+5
-4
captcha.go
utils/captcha/captcha.go
+4
-3
controller.go
utils/pagination/controller.go
+1
-1
No files found.
admin.go
View file @
70108131
...
...
@@ -24,6 +24,7 @@ import (
"time"
"github.com/astaxie/beego/grace"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/toolbox"
"github.com/astaxie/beego/utils"
)
...
...
@@ -410,7 +411,7 @@ func (admin *adminApp) Run() {
for
p
,
f
:=
range
admin
.
routers
{
http
.
Handle
(
p
,
f
)
}
BeeLogger
.
Info
(
"Admin server Running on %s"
,
addr
)
logs
.
Info
(
"Admin server Running on %s"
,
addr
)
var
err
error
if
BConfig
.
Listen
.
Graceful
{
...
...
@@ -419,6 +420,6 @@ func (admin *adminApp) Run() {
err
=
http
.
ListenAndServe
(
addr
,
nil
)
}
if
err
!=
nil
{
BeeLogger
.
Critical
(
"Admin ListenAndServe: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
logs
.
Critical
(
"Admin ListenAndServe: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
}
}
app.go
View file @
70108131
...
...
@@ -16,7 +16,6 @@ package beego
import
(
"fmt"
"log"
"net"
"net/http"
"net/http/fcgi"
...
...
@@ -25,6 +24,7 @@ import (
"time"
"github.com/astaxie/beego/grace"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/utils"
)
...
...
@@ -69,9 +69,9 @@ func (app *App) Run() {
if
BConfig
.
Listen
.
EnableFcgi
{
if
BConfig
.
Listen
.
EnableStdIo
{
if
err
=
fcgi
.
Serve
(
nil
,
app
.
Handlers
);
err
==
nil
{
// standard I/O
BeeLogger
.
Info
(
"Use FCGI via standard I/O"
)
logs
.
Info
(
"Use FCGI via standard I/O"
)
}
else
{
BeeLogger
.
Critical
(
"Cannot use FCGI via standard I/O"
,
err
)
logs
.
Critical
(
"Cannot use FCGI via standard I/O"
,
err
)
}
return
}
...
...
@@ -85,10 +85,10 @@ func (app *App) Run() {
l
,
err
=
net
.
Listen
(
"tcp"
,
addr
)
}
if
err
!=
nil
{
BeeLogger
.
Critical
(
"Listen: "
,
err
)
logs
.
Critical
(
"Listen: "
,
err
)
}
if
err
=
fcgi
.
Serve
(
l
,
app
.
Handlers
);
err
!=
nil
{
BeeLogger
.
Critical
(
"fcgi.Serve: "
,
err
)
logs
.
Critical
(
"fcgi.Serve: "
,
err
)
}
return
}
...
...
@@ -96,7 +96,7 @@ func (app *App) Run() {
app
.
Server
.
Handler
=
app
.
Handlers
app
.
Server
.
ReadTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
app
.
Server
.
WriteTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
app
.
Server
.
ErrorLog
=
log
.
New
(
BeeLogger
,
""
,
0
)
app
.
Server
.
ErrorLog
=
log
s
.
GetLogger
(
"HTTP"
)
// run graceful mode
if
BConfig
.
Listen
.
Graceful
{
...
...
@@ -113,7 +113,7 @@ func (app *App) Run() {
server
.
Server
.
ReadTimeout
=
app
.
Server
.
ReadTimeout
server
.
Server
.
WriteTimeout
=
app
.
Server
.
WriteTimeout
if
err
:=
server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
logs
.
Critical
(
"ListenAndServeTLS: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
...
...
@@ -128,7 +128,7 @@ func (app *App) Run() {
server
.
Network
=
"tcp4"
}
if
err
:=
server
.
ListenAndServe
();
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
logs
.
Critical
(
"ListenAndServe: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
...
...
@@ -146,9 +146,9 @@ func (app *App) Run() {
if
BConfig
.
Listen
.
HTTPSPort
!=
0
{
app
.
Server
.
Addr
=
fmt
.
Sprintf
(
"%s:%d"
,
BConfig
.
Listen
.
HTTPSAddr
,
BConfig
.
Listen
.
HTTPSPort
)
}
BeeLogger
.
Info
(
"https server Running on %s"
,
app
.
Server
.
Addr
)
logs
.
Info
(
"https server Running on %s"
,
app
.
Server
.
Addr
)
if
err
:=
app
.
Server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
)
logs
.
Critical
(
"ListenAndServeTLS: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
...
...
@@ -157,24 +157,24 @@ func (app *App) Run() {
if
BConfig
.
Listen
.
EnableHTTP
{
go
func
()
{
app
.
Server
.
Addr
=
addr
BeeLogger
.
Info
(
"http server Running on %s"
,
app
.
Server
.
Addr
)
logs
.
Info
(
"http server Running on %s"
,
app
.
Server
.
Addr
)
if
BConfig
.
Listen
.
ListenTCP4
{
ln
,
err
:=
net
.
Listen
(
"tcp4"
,
app
.
Server
.
Addr
)
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
logs
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
return
}
if
err
=
app
.
Server
.
Serve
(
ln
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
logs
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
return
}
}
else
{
if
err
:=
app
.
Server
.
ListenAndServe
();
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
logs
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
...
...
cache/redis/redis_test.go
View file @
70108131
...
...
@@ -18,9 +18,8 @@ import (
"testing"
"time"
"github.com/garyburd/redigo/redis"
"github.com/astaxie/beego/cache"
"github.com/garyburd/redigo/redis"
)
func
TestRedisCache
(
t
*
testing
.
T
)
{
...
...
cache/ssdb/ssdb_test.go
View file @
70108131
package
ssdb
import
(
"github.com/astaxie/beego/cache"
"strconv"
"testing"
"time"
"github.com/astaxie/beego/cache"
)
func
TestSsdbcacheCache
(
t
*
testing
.
T
)
{
...
...
config.go
View file @
70108131
...
...
@@ -21,6 +21,7 @@ import (
"strings"
"github.com/astaxie/beego/config"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/session"
"github.com/astaxie/beego/utils"
)
...
...
@@ -293,14 +294,14 @@ func parseConfig(appConfigPath string) (err error) {
}
//init log
BeeLogger
.
Reset
()
logs
.
Reset
()
for
adaptor
,
config
:=
range
BConfig
.
Log
.
Outputs
{
err
=
BeeLogger
.
SetLogger
(
adaptor
,
config
)
err
=
logs
.
SetLogger
(
adaptor
,
config
)
if
err
!=
nil
{
fmt
.
Printf
(
"%s with the config `%s` got err:%s
\n
"
,
adaptor
,
config
,
err
)
}
}
SetLogFuncCall
(
BConfig
.
Log
.
FileLineNum
)
logs
.
SetLogFuncCall
(
BConfig
.
Log
.
FileLineNum
)
return
nil
}
...
...
context/input_test.go
View file @
70108131
...
...
@@ -100,7 +100,7 @@ func TestSubDomain(t *testing.T) {
/* TODO Fix this
r, _ = http.NewRequest("GET", "http://127.0.0.1/", nil)
beegoInput.Request = r
beegoInput.
Context.
Request = r
if beegoInput.SubDomains() != "" {
t.Fatal("Subdomain parse error, got " + beegoInput.SubDomains())
}
...
...
filter_test.go
View file @
70108131
...
...
@@ -20,14 +20,8 @@ import (
"testing"
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/logs"
)
func
init
()
{
BeeLogger
=
logs
.
NewLogger
(
10000
)
BeeLogger
.
SetLogger
(
"console"
,
""
)
}
var
FilterUser
=
func
(
ctx
*
context
.
Context
)
{
ctx
.
Output
.
Body
([]
byte
(
"i am "
+
ctx
.
Input
.
Param
(
":last"
)
+
ctx
.
Input
.
Param
(
":first"
)))
}
...
...
hooks.go
View file @
70108131
...
...
@@ -7,6 +7,7 @@ import (
"path/filepath"
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/session"
)
...
...
@@ -71,7 +72,7 @@ func registerSession() error {
func
registerTemplate
()
error
{
if
err
:=
BuildTemplate
(
BConfig
.
WebConfig
.
ViewsPath
);
err
!=
nil
{
if
BConfig
.
RunMode
==
DEV
{
Warn
(
err
)
logs
.
Warn
(
err
)
}
return
err
}
...
...
log.go
View file @
70108131
...
...
@@ -33,82 +33,77 @@ const (
)
// BeeLogger references the used application logger.
var
BeeLogger
=
logs
.
NewLogger
(
100
)
var
BeeLogger
=
logs
.
GetBeeLogger
(
)
// SetLevel sets the global log level used by the simple logger.
func
SetLevel
(
l
int
)
{
BeeLogger
.
SetLevel
(
l
)
logs
.
SetLevel
(
l
)
}
// SetLogFuncCall set the CallDepth, default is 3
func
SetLogFuncCall
(
b
bool
)
{
BeeLogger
.
EnableFuncCallDepth
(
b
)
BeeLogger
.
SetLogFuncCallDepth
(
3
)
logs
.
SetLogFuncCall
(
b
)
}
// SetLogger sets a new logger.
func
SetLogger
(
adaptername
string
,
config
string
)
error
{
err
:=
BeeLogger
.
SetLogger
(
adaptername
,
config
)
if
err
!=
nil
{
return
err
}
return
nil
return
logs
.
SetLogger
(
adaptername
,
config
)
}
// Emergency logs a message at emergency level.
func
Emergency
(
v
...
interface
{})
{
BeeLogger
.
Emergency
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Emergency
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Alert logs a message at alert level.
func
Alert
(
v
...
interface
{})
{
BeeLogger
.
Alert
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Alert
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Critical logs a message at critical level.
func
Critical
(
v
...
interface
{})
{
BeeLogger
.
Critical
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Critical
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Error logs a message at error level.
func
Error
(
v
...
interface
{})
{
BeeLogger
.
Error
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Error
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Warning logs a message at warning level.
func
Warning
(
v
...
interface
{})
{
BeeLogger
.
Warning
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Warning
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Warn compatibility alias for Warning()
func
Warn
(
v
...
interface
{})
{
BeeLogger
.
Warn
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Warn
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Notice logs a message at notice level.
func
Notice
(
v
...
interface
{})
{
BeeLogger
.
Notice
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Notice
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Informational logs a message at info level.
func
Informational
(
v
...
interface
{})
{
BeeLogger
.
Informational
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Informational
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Info compatibility alias for Warning()
func
Info
(
v
...
interface
{})
{
BeeLogger
.
Info
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Info
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Debug logs a message at debug level.
func
Debug
(
v
...
interface
{})
{
BeeLogger
.
Debug
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Debug
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
// Trace logs a message at trace level.
// compatibility alias for Warning()
func
Trace
(
v
...
interface
{})
{
BeeLogger
.
Trace
(
generateFmtStr
(
len
(
v
)),
v
...
)
logs
.
Trace
(
generateFmtStr
(
len
(
v
)),
v
...
)
}
func
generateFmtStr
(
n
int
)
string
{
...
...
logs/conn.go
View file @
70108131
...
...
@@ -113,5 +113,5 @@ func (c *connWriter) needToConnectOnMsg() bool {
}
func
init
()
{
Register
(
"conn"
,
NewConn
)
Register
(
AdapterConn
,
NewConn
)
}
logs/console.go
View file @
70108131
...
...
@@ -97,5 +97,5 @@ func (c *consoleWriter) Flush() {
}
func
init
()
{
Register
(
"console"
,
NewConsole
)
Register
(
AdapterConsole
,
NewConsole
)
}
logs/es/es.go
View file @
70108131
...
...
@@ -76,5 +76,5 @@ func (el *esLogger) Flush() {
}
func
init
()
{
logs
.
Register
(
"es"
,
NewES
)
logs
.
Register
(
logs
.
AdapterEs
,
NewES
)
}
logs/file.go
View file @
70108131
...
...
@@ -282,5 +282,5 @@ func (w *fileLogWriter) Flush() {
}
func
init
()
{
Register
(
"file"
,
newFileWriter
)
Register
(
AdapterFile
,
newFileWriter
)
}
logs/log.go
View file @
70108131
This diff is collapsed.
Click to expand it.
logs/multifile.go
View file @
70108131
...
...
@@ -112,5 +112,5 @@ func newFilesWriter() Logger {
}
func
init
()
{
Register
(
"multifile"
,
newFilesWriter
)
Register
(
AdapterMultiFile
,
newFilesWriter
)
}
logs/smtp.go
View file @
70108131
...
...
@@ -156,5 +156,5 @@ func (s *SMTPWriter) Destroy() {
}
func
init
()
{
Register
(
"smtp"
,
newSMTPWriter
)
Register
(
AdapterMail
,
newSMTPWriter
)
}
migration/migration.go
View file @
70108131
...
...
@@ -33,7 +33,7 @@ import (
"strings"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego
/logs
"
"github.com/astaxie/beego/orm"
)
...
...
@@ -90,7 +90,7 @@ func (m *Migration) Reset() {
func
(
m
*
Migration
)
Exec
(
name
,
status
string
)
error
{
o
:=
orm
.
NewOrm
()
for
_
,
s
:=
range
m
.
sqls
{
beego
.
Info
(
"exec sql:"
,
s
)
logs
.
Info
(
"exec sql:"
,
s
)
r
:=
o
.
Raw
(
s
)
_
,
err
:=
r
.
Exec
()
if
err
!=
nil
{
...
...
@@ -144,20 +144,20 @@ func Upgrade(lasttime int64) error {
i
:=
0
for
_
,
v
:=
range
sm
{
if
v
.
created
>
lasttime
{
beego
.
Info
(
"start upgrade"
,
v
.
name
)
logs
.
Info
(
"start upgrade"
,
v
.
name
)
v
.
m
.
Reset
()
v
.
m
.
Up
()
err
:=
v
.
m
.
Exec
(
v
.
name
,
"up"
)
if
err
!=
nil
{
beego
.
Error
(
"execute error:"
,
err
)
logs
.
Error
(
"execute error:"
,
err
)
time
.
Sleep
(
2
*
time
.
Second
)
return
err
}
beego
.
Info
(
"end upgrade:"
,
v
.
name
)
logs
.
Info
(
"end upgrade:"
,
v
.
name
)
i
++
}
}
beego
.
Info
(
"total success upgrade:"
,
i
,
" migration"
)
logs
.
Info
(
"total success upgrade:"
,
i
,
" migration"
)
time
.
Sleep
(
2
*
time
.
Second
)
return
nil
}
...
...
@@ -165,20 +165,20 @@ func Upgrade(lasttime int64) error {
// Rollback rollback the migration by the name
func
Rollback
(
name
string
)
error
{
if
v
,
ok
:=
migrationMap
[
name
];
ok
{
beego
.
Info
(
"start rollback"
)
logs
.
Info
(
"start rollback"
)
v
.
Reset
()
v
.
Down
()
err
:=
v
.
Exec
(
name
,
"down"
)
if
err
!=
nil
{
beego
.
Error
(
"execute error:"
,
err
)
logs
.
Error
(
"execute error:"
,
err
)
time
.
Sleep
(
2
*
time
.
Second
)
return
err
}
beego
.
Info
(
"end rollback"
)
logs
.
Info
(
"end rollback"
)
time
.
Sleep
(
2
*
time
.
Second
)
return
nil
}
beego
.
Error
(
"not exist the migrationMap name:"
+
name
)
logs
.
Error
(
"not exist the migrationMap name:"
+
name
)
time
.
Sleep
(
2
*
time
.
Second
)
return
errors
.
New
(
"not exist the migrationMap name:"
+
name
)
}
...
...
@@ -191,23 +191,23 @@ func Reset() error {
for
j
:=
len
(
sm
)
-
1
;
j
>=
0
;
j
--
{
v
:=
sm
[
j
]
if
isRollBack
(
v
.
name
)
{
beego
.
Info
(
"skip the"
,
v
.
name
)
logs
.
Info
(
"skip the"
,
v
.
name
)
time
.
Sleep
(
1
*
time
.
Second
)
continue
}
beego
.
Info
(
"start reset:"
,
v
.
name
)
logs
.
Info
(
"start reset:"
,
v
.
name
)
v
.
m
.
Reset
()
v
.
m
.
Down
()
err
:=
v
.
m
.
Exec
(
v
.
name
,
"down"
)
if
err
!=
nil
{
beego
.
Error
(
"execute error:"
,
err
)
logs
.
Error
(
"execute error:"
,
err
)
time
.
Sleep
(
2
*
time
.
Second
)
return
err
}
i
++
beego
.
Info
(
"end reset:"
,
v
.
name
)
logs
.
Info
(
"end reset:"
,
v
.
name
)
}
beego
.
Info
(
"total success reset:"
,
i
,
" migration"
)
logs
.
Info
(
"total success reset:"
,
i
,
" migration"
)
time
.
Sleep
(
2
*
time
.
Second
)
return
nil
}
...
...
@@ -216,7 +216,7 @@ func Reset() error {
func
Refresh
()
error
{
err
:=
Reset
()
if
err
!=
nil
{
beego
.
Error
(
"execute error:"
,
err
)
logs
.
Error
(
"execute error:"
,
err
)
time
.
Sleep
(
2
*
time
.
Second
)
return
err
}
...
...
@@ -265,7 +265,7 @@ func isRollBack(name string) bool {
var
maps
[]
orm
.
Params
num
,
err
:=
o
.
Raw
(
"select * from migrations where `name` = ? order by id_migration desc"
,
name
)
.
Values
(
&
maps
)
if
err
!=
nil
{
beego
.
Info
(
"get name has error"
,
err
)
logs
.
Info
(
"get name has error"
,
err
)
return
false
}
if
num
<=
0
{
...
...
parser.go
View file @
70108131
...
...
@@ -27,6 +27,7 @@ import (
"sort"
"strings"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/utils"
)
...
...
@@ -58,7 +59,7 @@ func parserPkg(pkgRealpath, pkgpath string) error {
rep
:=
strings
.
NewReplacer
(
"/"
,
"_"
,
"."
,
"_"
)
commentFilename
=
coomentPrefix
+
rep
.
Replace
(
pkgpath
)
+
".go"
if
!
compareFile
(
pkgRealpath
)
{
Info
(
pkgRealpath
+
" no changed"
)
logs
.
Info
(
pkgRealpath
+
" no changed"
)
return
nil
}
genInfoList
=
make
(
map
[
string
][]
ControllerComments
)
...
...
@@ -131,7 +132,7 @@ func parserComments(comments *ast.CommentGroup, funcName, controllerName, pkgpat
func
genRouterCode
()
{
os
.
Mkdir
(
path
.
Join
(
AppPath
,
"routers"
),
0755
)
Info
(
"generate router from comments"
)
logs
.
Info
(
"generate router from comments"
)
var
(
globalinfo
string
sortKey
[]
string
...
...
router.go
View file @
70108131
...
...
@@ -28,6 +28,7 @@ import (
"time"
beecontext
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/toolbox"
"github.com/astaxie/beego/utils"
)
...
...
@@ -439,11 +440,11 @@ func (p *ControllerRegister) insertFilterRouter(pos int, mr *FilterRouter) (err
func
(
p
*
ControllerRegister
)
URLFor
(
endpoint
string
,
values
...
interface
{})
string
{
paths
:=
strings
.
Split
(
endpoint
,
"."
)
if
len
(
paths
)
<=
1
{
Warn
(
"urlfor endpoint must like path.controller.method"
)
logs
.
Warn
(
"urlfor endpoint must like path.controller.method"
)
return
""
}
if
len
(
values
)
%
2
!=
0
{
Warn
(
"urlfor params must key-value pair"
)
logs
.
Warn
(
"urlfor params must key-value pair"
)
return
""
}
params
:=
make
(
map
[
string
]
string
)
...
...
@@ -651,7 +652,7 @@ func (p *ControllerRegister) ServeHTTP(rw http.ResponseWriter, r *http.Request)
var
err
error
context
.
Input
.
CruSession
,
err
=
GlobalSessions
.
SessionStart
(
rw
,
r
)
if
err
!=
nil
{
Error
(
err
)
logs
.
Error
(
err
)
exception
(
"503"
,
context
)
goto
Admin
}
...
...
@@ -780,7 +781,7 @@ func (p *ControllerRegister) ServeHTTP(rw http.ResponseWriter, r *http.Request)
if
!
context
.
ResponseWriter
.
Started
&&
context
.
Output
.
Status
==
0
{
if
BConfig
.
WebConfig
.
AutoRender
{
if
err
:=
execController
.
Render
();
err
!=
nil
{
Error
(
err
)
logs
.
Error
(
err
)
}
}
}
...
...
@@ -825,7 +826,7 @@ Admin:
devInfo
=
fmt
.
Sprintf
(
"| % -10s | % -40s | % -16s | % -10s |"
,
r
.
Method
,
r
.
URL
.
Path
,
timeDur
.
String
(),
"notmatch"
)
}
if
DefaultAccessLogFilter
==
nil
||
!
DefaultAccessLogFilter
.
Filter
(
context
)
{
Debug
(
devInfo
)
logs
.
Debug
(
devInfo
)
}
}
...
...
@@ -850,14 +851,14 @@ func (p *ControllerRegister) recoverPanic(context *beecontext.Context) {
}
}
var
stack
string
Critical
(
"the request url is "
,
context
.
Input
.
URL
())
Critical
(
"Handler crashed with error"
,
err
)
logs
.
Critical
(
"the request url is "
,
context
.
Input
.
URL
())
logs
.
Critical
(
"Handler crashed with error"
,
err
)
for
i
:=
1
;
;
i
++
{
_
,
file
,
line
,
ok
:=
runtime
.
Caller
(
i
)
if
!
ok
{
break
}
Critical
(
fmt
.
Sprintf
(
"%s:%d"
,
file
,
line
))
logs
.
Critical
(
fmt
.
Sprintf
(
"%s:%d"
,
file
,
line
))
stack
=
stack
+
fmt
.
Sprintln
(
fmt
.
Sprintf
(
"%s:%d"
,
file
,
line
))
}
if
BConfig
.
RunMode
==
DEV
{
...
...
router_test.go
View file @
70108131
...
...
@@ -21,6 +21,7 @@ import (
"testing"
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/logs"
)
type
TestController
struct
{
...
...
@@ -94,7 +95,7 @@ func TestUrlFor(t *testing.T) {
handler
.
Add
(
"/api/list"
,
&
TestController
{},
"*:List"
)
handler
.
Add
(
"/person/:last/:first"
,
&
TestController
{},
"*:Param"
)
if
a
:=
handler
.
URLFor
(
"TestController.List"
);
a
!=
"/api/list"
{
Info
(
a
)
logs
.
Info
(
a
)
t
.
Errorf
(
"TestController.List must equal to /api/list"
)
}
if
a
:=
handler
.
URLFor
(
"TestController.Param"
,
":last"
,
"xie"
,
":first"
,
"asta"
);
a
!=
"/person/xie/asta"
{
...
...
@@ -120,24 +121,24 @@ func TestUrlFor2(t *testing.T) {
handler
.
Add
(
"/v1/:v(.+)_cms/ttt_:id(.+)_:page(.+).html"
,
&
TestController
{},
"*:Param"
)
handler
.
Add
(
"/:year:int/:month:int/:title/:entid"
,
&
TestController
{})
if
handler
.
URLFor
(
"TestController.GetURL"
,
":username"
,
"astaxie"
)
!=
"/v1/astaxie/edit"
{
Info
(
handler
.
URLFor
(
"TestController.GetURL"
))
logs
.
Info
(
handler
.
URLFor
(
"TestController.GetURL"
))
t
.
Errorf
(
"TestController.List must equal to /v1/astaxie/edit"
)
}
if
handler
.
URLFor
(
"TestController.List"
,
":v"
,
"za"
,
":id"
,
"12"
,
":page"
,
"123"
)
!=
"/v1/za/cms_12_123.html"
{
Info
(
handler
.
URLFor
(
"TestController.List"
))
logs
.
Info
(
handler
.
URLFor
(
"TestController.List"
))
t
.
Errorf
(
"TestController.List must equal to /v1/za/cms_12_123.html"
)
}
if
handler
.
URLFor
(
"TestController.Param"
,
":v"
,
"za"
,
":id"
,
"12"
,
":page"
,
"123"
)
!=
"/v1/za_cms/ttt_12_123.html"
{
Info
(
handler
.
URLFor
(
"TestController.Param"
))
logs
.
Info
(
handler
.
URLFor
(
"TestController.Param"
))
t
.
Errorf
(
"TestController.List must equal to /v1/za_cms/ttt_12_123.html"
)
}
if
handler
.
URLFor
(
"TestController.Get"
,
":year"
,
"1111"
,
":month"
,
"11"
,
":title"
,
"aaaa"
,
":entid"
,
"aaaa"
)
!=
"/1111/11/aaaa/aaaa"
{
Info
(
handler
.
URLFor
(
"TestController.Get"
))
logs
.
Info
(
handler
.
URLFor
(
"TestController.Get"
))
t
.
Errorf
(
"TestController.Get must equal to /1111/11/aaaa/aaaa"
)
}
}
...
...
staticfile.go
View file @
70108131
...
...
@@ -27,6 +27,7 @@ import (
"time"
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/logs"
)
var
errNotStaticRequest
=
errors
.
New
(
"request not a static file request"
)
...
...
@@ -48,7 +49,7 @@ func serverStaticRouter(ctx *context.Context) {
if
filePath
==
""
||
fileInfo
==
nil
{
if
BConfig
.
RunMode
==
DEV
{
Warn
(
"Can't find/open the file:"
,
filePath
,
err
)
logs
.
Warn
(
"Can't find/open the file:"
,
filePath
,
err
)
}
http
.
NotFound
(
ctx
.
ResponseWriter
,
ctx
.
Request
)
return
...
...
@@ -72,7 +73,7 @@ func serverStaticRouter(ctx *context.Context) {
b
,
n
,
sch
,
err
:=
openFile
(
filePath
,
fileInfo
,
acceptEncoding
)
if
err
!=
nil
{
if
BConfig
.
RunMode
==
DEV
{
Warn
(
"Can't compress the file:"
,
filePath
,
err
)
logs
.
Warn
(
"Can't compress the file:"
,
filePath
,
err
)
}
http
.
NotFound
(
ctx
.
ResponseWriter
,
ctx
.
Request
)
return
...
...
template.go
View file @
70108131
...
...
@@ -26,6 +26,7 @@ import (
"strings"
"sync"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/utils"
)
...
...
@@ -46,7 +47,7 @@ func executeTemplate(wr io.Writer, name string, data interface{}) error {
if
t
,
ok
:=
beeTemplates
[
name
];
ok
{
err
:=
t
.
ExecuteTemplate
(
wr
,
name
,
data
)
if
err
!=
nil
{
Trace
(
"template Execute err:"
,
err
)
logs
.
Trace
(
"template Execute err:"
,
err
)
}
return
err
}
...
...
@@ -162,7 +163,7 @@ func BuildTemplate(dir string, files ...string) error {
templatesLock
.
Lock
()
t
,
err
:=
getTemplate
(
self
.
root
,
file
,
v
...
)
if
err
!=
nil
{
Trace
(
"parse template err:"
,
file
,
err
)
logs
.
Trace
(
"parse template err:"
,
file
,
err
)
}
else
{
beeTemplates
[
file
]
=
t
}
...
...
@@ -240,7 +241,7 @@ func _getTemplate(t0 *template.Template, root string, subMods [][]string, others
var
subMods1
[][]
string
t
,
subMods1
,
err
=
getTplDeep
(
root
,
otherFile
,
""
,
t
)
if
err
!=
nil
{
Trace
(
"template parse file err:"
,
err
)
logs
.
Trace
(
"template parse file err:"
,
err
)
}
else
if
subMods1
!=
nil
&&
len
(
subMods1
)
>
0
{
t
,
err
=
_getTemplate
(
t
,
root
,
subMods1
,
others
...
)
}
...
...
@@ -261,7 +262,7 @@ func _getTemplate(t0 *template.Template, root string, subMods [][]string, others
var
subMods1
[][]
string
t
,
subMods1
,
err
=
getTplDeep
(
root
,
otherFile
,
""
,
t
)
if
err
!=
nil
{
Trace
(
"template parse file err:"
,
err
)
logs
.
Trace
(
"template parse file err:"
,
err
)
}
else
if
subMods1
!=
nil
&&
len
(
subMods1
)
>
0
{
t
,
err
=
_getTemplate
(
t
,
root
,
subMods1
,
others
...
)
}
...
...
utils/captcha/captcha.go
View file @
70108131
...
...
@@ -69,6 +69,7 @@ import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/cache"
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/utils"
)
...
...
@@ -139,7 +140,7 @@ func (c *Captcha) Handler(ctx *context.Context) {
if
err
:=
c
.
store
.
Put
(
key
,
chars
,
c
.
Expiration
);
err
!=
nil
{
ctx
.
Output
.
SetStatus
(
500
)
ctx
.
WriteString
(
"captcha reload error"
)
beego
.
Error
(
"Reload Create Captcha Error:"
,
err
)
logs
.
Error
(
"Reload Create Captcha Error:"
,
err
)
return
}
}
else
{
...
...
@@ -154,7 +155,7 @@ func (c *Captcha) Handler(ctx *context.Context) {
img
:=
NewImage
(
chars
,
c
.
StdWidth
,
c
.
StdHeight
)
if
_
,
err
:=
img
.
WriteTo
(
ctx
.
ResponseWriter
);
err
!=
nil
{
beego
.
Error
(
"Write Captcha Image Error:"
,
err
)
logs
.
Error
(
"Write Captcha Image Error:"
,
err
)
}
}
...
...
@@ -162,7 +163,7 @@ func (c *Captcha) Handler(ctx *context.Context) {
func
(
c
*
Captcha
)
CreateCaptchaHTML
()
template
.
HTML
{
value
,
err
:=
c
.
CreateCaptcha
()
if
err
!=
nil
{
beego
.
Error
(
"Create Captcha Error:"
,
err
)
logs
.
Error
(
"Create Captcha Error:"
,
err
)
return
""
}
...
...
utils/pagination/controller.go
View file @
70108131
...
...
@@ -18,7 +18,7 @@ import (
"github.com/astaxie/beego/context"
)
// SetPaginator Instantiates a Paginator and assigns it to context.Input.Data
["paginator"]
.
// SetPaginator Instantiates a Paginator and assigns it to context.Input.Data
("paginator")
.
func
SetPaginator
(
context
*
context
.
Context
,
per
int
,
nums
int64
)
(
paginator
*
Paginator
)
{
paginator
=
NewPaginator
(
context
.
Request
,
per
,
nums
)
context
.
Input
.
SetData
(
"paginator"
,
&
paginator
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment