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
99c0b1e3
Commit
99c0b1e3
authored
Mar 18, 2016
by
astaxie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1803 from JessonChan/log_develop
fix rotate read-write lock race
parents
c8bbfb75
ec35bd0c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
3 deletions
+7
-3
file.go
logs/file.go
+6
-2
orm_log.go
orm/orm_log.go
+1
-1
No files found.
logs/file.go
View file @
99c0b1e3
...
@@ -30,7 +30,7 @@ import (
...
@@ -30,7 +30,7 @@ import (
// fileLogWriter implements LoggerInterface.
// fileLogWriter implements LoggerInterface.
// It writes messages by lines limit, file size limit, or time frequency.
// It writes messages by lines limit, file size limit, or time frequency.
type
fileLogWriter
struct
{
type
fileLogWriter
struct
{
sync
.
Mutex
// write log order by order and atomic incr maxLinesCurLines and maxSizeCurSize
sync
.
RW
Mutex
// write log order by order and atomic incr maxLinesCurLines and maxSizeCurSize
// The opened file
// The opened file
Filename
string
`json:"filename"`
Filename
string
`json:"filename"`
fileWriter
*
os
.
File
fileWriter
*
os
.
File
...
@@ -77,7 +77,7 @@ func newFileWriter() Logger {
...
@@ -77,7 +77,7 @@ func newFileWriter() Logger {
// {
// {
// "filename":"logs/beego.log",
// "filename":"logs/beego.log",
// "maxLines":10000,
// "maxLines":10000,
// "maxsize":1
<<30
,
// "maxsize":1
024
,
// "daily":true,
// "daily":true,
// "maxDays":15,
// "maxDays":15,
// "rotate":true,
// "rotate":true,
...
@@ -128,7 +128,9 @@ func (w *fileLogWriter) WriteMsg(when time.Time, msg string, level int) error {
...
@@ -128,7 +128,9 @@ func (w *fileLogWriter) WriteMsg(when time.Time, msg string, level int) error {
h
,
d
:=
formatTimeHeader
(
when
)
h
,
d
:=
formatTimeHeader
(
when
)
msg
=
string
(
h
)
+
msg
+
"
\n
"
msg
=
string
(
h
)
+
msg
+
"
\n
"
if
w
.
Rotate
{
if
w
.
Rotate
{
w
.
RLock
()
if
w
.
needRotate
(
len
(
msg
),
d
)
{
if
w
.
needRotate
(
len
(
msg
),
d
)
{
w
.
RUnlock
()
w
.
Lock
()
w
.
Lock
()
if
w
.
needRotate
(
len
(
msg
),
d
)
{
if
w
.
needRotate
(
len
(
msg
),
d
)
{
if
err
:=
w
.
doRotate
(
when
);
err
!=
nil
{
if
err
:=
w
.
doRotate
(
when
);
err
!=
nil
{
...
@@ -136,6 +138,8 @@ func (w *fileLogWriter) WriteMsg(when time.Time, msg string, level int) error {
...
@@ -136,6 +138,8 @@ func (w *fileLogWriter) WriteMsg(when time.Time, msg string, level int) error {
}
}
}
}
w
.
Unlock
()
w
.
Unlock
()
}
else
{
w
.
RUnlock
()
}
}
}
}
...
...
orm/orm_log.go
View file @
99c0b1e3
...
@@ -31,7 +31,7 @@ type Log struct {
...
@@ -31,7 +31,7 @@ type Log struct {
// NewLog set io.Writer to create a Logger.
// NewLog set io.Writer to create a Logger.
func
NewLog
(
out
io
.
Writer
)
*
Log
{
func
NewLog
(
out
io
.
Writer
)
*
Log
{
d
:=
new
(
Log
)
d
:=
new
(
Log
)
d
.
Logger
=
log
.
New
(
out
,
"[ORM]"
,
1e9
)
d
.
Logger
=
log
.
New
(
out
,
"[ORM]"
,
log
.
LstdFlags
)
return
d
return
d
}
}
...
...
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