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
e1b73b33
Commit
e1b73b33
authored
Jan 13, 2016
by
JessonChan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
improve code
parent
c535dc38
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
21 deletions
+21
-21
file.go
logs/file.go
+21
-19
log.go
logs/log.go
+0
-2
No files found.
logs/file.go
View file @
e1b73b33
...
@@ -48,7 +48,7 @@ type fileLogWriter struct {
...
@@ -48,7 +48,7 @@ type fileLogWriter struct {
Rotate
bool
`json:"rotate"`
Rotate
bool
`json:"rotate"`
startLock
sync
.
Mutex
//
Only one log can write to the fil
e
startLock
sync
.
Mutex
//
atomic incr maxLinesCurLines and maxSizeCurSiz
e
Level
int
`json:"level"`
Level
int
`json:"level"`
...
@@ -58,22 +58,23 @@ type fileLogWriter struct {
...
@@ -58,22 +58,23 @@ type fileLogWriter struct {
// MuxWriter is an *os.File writer with locker,lock write when rotate
// MuxWriter is an *os.File writer with locker,lock write when rotate
type
MuxWriter
struct
{
type
MuxWriter
struct
{
sync
.
Mutex
sync
.
Mutex
f
d
*
os
.
File
f
ileWriter
*
os
.
File
}
}
// Write to os.File.
// Write to os.File.
func
(
l
*
MuxWriter
)
Write
(
b
[]
byte
)
(
int
,
error
)
{
func
(
mw
*
MuxWriter
)
Write
(
b
[]
byte
)
(
int
,
error
)
{
l
.
Lock
()
mw
.
Lock
()
defer
l
.
Unlock
()
n
,
e
:=
mw
.
fileWriter
.
Write
(
b
)
return
l
.
fd
.
Write
(
b
)
mw
.
Unlock
()
return
n
,
e
}
}
// SetF
d
set os.File in writer.
// SetF
ileWriter
set os.File in writer.
func
(
l
*
MuxWriter
)
SetFd
(
fd
*
os
.
File
)
{
func
(
mw
*
MuxWriter
)
SetFileWriter
(
fd
*
os
.
File
)
{
if
l
.
fd
!=
nil
{
if
mw
.
fileWriter
!=
nil
{
l
.
fd
.
Close
()
mw
.
fileWriter
.
Close
()
}
}
l
.
fd
=
fd
mw
.
fileWriter
=
fd
}
}
// NewFileWriter create a FileLogWriter returning as LoggerInterface.
// NewFileWriter create a FileLogWriter returning as LoggerInterface.
...
@@ -117,11 +118,11 @@ func (w *fileLogWriter) Init(jsonConfig string) error {
...
@@ -117,11 +118,11 @@ func (w *fileLogWriter) Init(jsonConfig string) error {
// start file logger. create log file and set to locker-inside file writer.
// start file logger. create log file and set to locker-inside file writer.
func
(
w
*
fileLogWriter
)
startLogger
()
error
{
func
(
w
*
fileLogWriter
)
startLogger
()
error
{
f
d
,
err
:=
w
.
createLogFile
()
f
ile
,
err
:=
w
.
createLogFile
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
w
.
SetF
d
(
fd
)
w
.
SetF
ileWriter
(
file
)
return
w
.
initFd
()
return
w
.
initFd
()
}
}
...
@@ -151,7 +152,7 @@ func (w *fileLogWriter) WriteMsg(msg string, level int) error {
...
@@ -151,7 +152,7 @@ func (w *fileLogWriter) WriteMsg(msg string, level int) error {
y
,
mo
,
d
:=
now
.
Date
()
y
,
mo
,
d
:=
now
.
Date
()
h
,
mi
,
s
:=
now
.
Clock
()
h
,
mi
,
s
:=
now
.
Clock
()
//len(2006/01/02 15:03:04)==19
//len(2006/01/02 15:03:04)==19
var
buf
[
19
]
byte
var
buf
[
20
]
byte
t
:=
3
t
:=
3
for
y
>=
10
{
for
y
>=
10
{
p
:=
y
/
10
p
:=
y
/
10
...
@@ -184,10 +185,11 @@ func (w *fileLogWriter) WriteMsg(msg string, level int) error {
...
@@ -184,10 +185,11 @@ func (w *fileLogWriter) WriteMsg(msg string, level int) error {
t
=
s
/
10
t
=
s
/
10
buf
[
17
]
=
byte
(
'0'
+
t
)
buf
[
17
]
=
byte
(
'0'
+
t
)
buf
[
18
]
=
byte
(
'0'
+
s
-
t
*
10
)
buf
[
18
]
=
byte
(
'0'
+
s
-
t
*
10
)
buf
[
18
]
=
' '
msg
=
string
(
buf
[
0
:
])
+
msg
+
"
\n
"
msg
=
string
(
buf
[
0
:
])
+
msg
+
"
\n
"
w
.
doCheck
(
len
(
msg
))
w
.
doCheck
(
len
(
msg
))
_
,
err
:=
w
.
fd
.
Write
([]
byte
(
msg
))
_
,
err
:=
w
.
Write
([]
byte
(
msg
))
return
err
return
err
}
}
...
@@ -198,7 +200,7 @@ func (w *fileLogWriter) createLogFile() (*os.File, error) {
...
@@ -198,7 +200,7 @@ func (w *fileLogWriter) createLogFile() (*os.File, error) {
}
}
func
(
w
*
fileLogWriter
)
initFd
()
error
{
func
(
w
*
fileLogWriter
)
initFd
()
error
{
fd
:=
w
.
f
d
fd
:=
w
.
f
ileWriter
fInfo
,
err
:=
fd
.
Stat
()
fInfo
,
err
:=
fd
.
Stat
()
if
err
!=
nil
{
if
err
!=
nil
{
return
fmt
.
Errorf
(
"get stat err: %s
\n
"
,
err
)
return
fmt
.
Errorf
(
"get stat err: %s
\n
"
,
err
)
...
@@ -270,7 +272,7 @@ func (w *fileLogWriter) DoRotate() error {
...
@@ -270,7 +272,7 @@ func (w *fileLogWriter) DoRotate() error {
w
.
Lock
()
w
.
Lock
()
defer
w
.
Unlock
()
defer
w
.
Unlock
()
fd
:=
w
.
f
d
fd
:=
w
.
f
ileWriter
fd
.
Close
()
fd
.
Close
()
// close fd before rename
// close fd before rename
...
@@ -312,14 +314,14 @@ func (w *fileLogWriter) deleteOldLog() {
...
@@ -312,14 +314,14 @@ func (w *fileLogWriter) deleteOldLog() {
// Destroy close the file description, close file writer.
// Destroy close the file description, close file writer.
func
(
w
*
fileLogWriter
)
Destroy
()
{
func
(
w
*
fileLogWriter
)
Destroy
()
{
w
.
f
d
.
Close
()
w
.
f
ileWriter
.
Close
()
}
}
// Flush flush file logger.
// Flush flush file logger.
// there are no buffering messages in file logger in memory.
// there are no buffering messages in file logger in memory.
// flush file means sync file from disk.
// flush file means sync file from disk.
func
(
w
*
fileLogWriter
)
Flush
()
{
func
(
w
*
fileLogWriter
)
Flush
()
{
w
.
f
d
.
Sync
()
w
.
f
ileWriter
.
Sync
()
}
}
func
init
()
{
func
init
()
{
...
...
logs/log.go
View file @
e1b73b33
...
@@ -191,8 +191,6 @@ func (bl *BeeLogger) writeMsg(logLevel int, msg string) error {
...
@@ -191,8 +191,6 @@ func (bl *BeeLogger) writeMsg(logLevel int, msg string) error {
}
}
_
,
filename
:=
path
.
Split
(
file
)
_
,
filename
:=
path
.
Split
(
file
)
msg
=
"["
+
filename
+
":"
+
strconv
.
FormatInt
(
int64
(
line
),
10
)
+
"]"
+
msg
msg
=
"["
+
filename
+
":"
+
strconv
.
FormatInt
(
int64
(
line
),
10
)
+
"]"
+
msg
}
else
{
msg
=
msg
}
}
if
bl
.
asynchronous
{
if
bl
.
asynchronous
{
lm
:=
logMsgPool
.
Get
()
.
(
*
logMsg
)
lm
:=
logMsgPool
.
Get
()
.
(
*
logMsg
)
...
...
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