Skip to content

Commit 1115228

Browse files
committed
增加logpath参数,自定义logpath的路径:包括统计日志、synclog日志路径,db路径依然在/data/goredis_xxx/db
0/
1 parent 342f47c commit 1115228

File tree

3 files changed

+40
-14
lines changed

3 files changed

+40
-14
lines changed

goredis_server/go_redis_server_init.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@ func (server *GoRedisServer) Init() (err error) {
2727
}
2828
server.config = NewConfig(server.levelRedis, PREFIX+"config:")
2929
// monitor
30-
server.initCommandMonitor(server.directory + "/cmd.log")
30+
server.initCommandMonitor(server.opt.LogDir() + "/cmd.log")
3131
server.initCommandCounterLog("string", []string{"GET", "SET", "MGET", "MSET", "INCR", "DECR", "INCRBY", "DECRBY"})
3232
server.initCommandCounterLog("hash", []string{"HGETALL", "HGET", "HSET", "HDEL", "HMGET", "HMSET", "HINCRBY", "HLEN"})
3333
server.initCommandCounterLog("set", []string{"SADD", "SCARD", "SISMEMBER", "SMEMBERS", "SREM"})
3434
server.initCommandCounterLog("list", []string{"LPUSH", "RPUSH", "LPOP", "RPOP", "LINDEX", "LLEN", "LRANGE", "LTRIM"})
3535
server.initCommandCounterLog("zset", []string{"ZADD", "ZCARD", "ZSCORE", "ZINCRBY", "ZRANGE", "ZRANGEBYSCORE", "ZRANK", "ZREM", "ZREMRANGEBYRANK", "ZREMRANGEBYSCORE", "ZREVRANGE", "ZREVRANGEBYSCORE", "ZREVRANK"})
36-
server.initSeqLog(server.directory + "/seq.log")
37-
server.initLeveldbIOLog(server.directory + "/leveldb.io.log")
38-
server.initLeveldbStatsLog(server.directory + "/leveldb.stats.log")
39-
server.initExecLog(server.directory + "/exec.time.log")
40-
server.initSlowlog(server.directory + "/slow.log")
36+
server.initSeqLog(server.opt.LogDir() + "/seq.log")
37+
server.initLeveldbIOLog(server.opt.LogDir() + "/leveldb.io.log")
38+
server.initLeveldbStatsLog(server.opt.LogDir() + "/leveldb.stats.log")
39+
server.initExecLog(server.opt.LogDir() + "/exec.time.log")
40+
server.initSlowlog(server.opt.LogDir() + "/slow.log")
4141
stdlog.Printf("init uid %s\n", server.UID())
4242
server.initSlaveOf()
4343
return
@@ -139,7 +139,7 @@ func (server *GoRedisServer) initSyncLog() error {
139139
env.SetBackgroundThreads(2)
140140
env.SetHighPriorityBackgroundThreads(1)
141141
opts.SetEnv(env)
142-
db, e1 := levelredis.Open(server.directory+"/synclog", opts)
142+
db, e1 := levelredis.Open(server.opt.LogDir()+"/synclog", opts)
143143
if e1 != nil {
144144
return e1
145145
}
@@ -288,7 +288,7 @@ func (server *GoRedisServer) initLeveldbStatsLog(path string) {
288288
}
289289

290290
func (server *GoRedisServer) initCommandCounterLog(cate string, cmds []string) {
291-
path := fmt.Sprintf("%s/cmd.%s.log", server.directory, cate)
291+
path := fmt.Sprintf("%s/cmd.%s.log", server.opt.LogDir(), cate)
292292
file, err := openfile(path)
293293
if err != nil {
294294
panic(err)

goredis_server/options.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ type Options struct {
66
slaveofHost string
77
slaveofPort int
88
directory string
9+
logdir string
910
}
1011

1112
func NewOptions() (o *Options) {
@@ -36,3 +37,11 @@ func (o *Options) SetDirectory(path string) {
3637
func (o *Options) Directory() string {
3738
return o.directory
3839
}
40+
41+
func (o *Options) LogDir() string {
42+
return o.logdir
43+
}
44+
45+
func (o *Options) SetLogDir(logdir string) {
46+
o.logdir = logdir
47+
}

main/goredis-server.go

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ func main() {
2828
slaveof := flag.String("slaveof", "", "replication")
2929
procs := flag.Int("procs", 8, "GOMAXPROCS")
3030
repair := flag.Bool("repair", false, "repaire rocksdb")
31+
logpath := flag.String("logpath", "/home/data", "config goredis log path and synclog path")
32+
3133
flag.Parse()
3234

3335
if *version {
@@ -39,7 +41,9 @@ func main() {
3941

4042
opt := goredis_server.NewOptions()
4143
opt.SetBind(fmt.Sprintf("%s:%d", *host, *port))
42-
opt.SetDirectory(dbHome(*port))
44+
45+
dbhome := dbHome(*port)
46+
opt.SetDirectory(dbhome)
4347
if len(*slaveof) > 0 {
4448
h, p, e := splitHostPort(*slaveof)
4549
if e != nil {
@@ -49,7 +53,7 @@ func main() {
4953
}
5054

5155
// 重定向日志输出位置
52-
redirectLogOutput(opt.Directory())
56+
opt.SetLogDir(redirectLogOutput(*logpath, *port, dbhome))
5357

5458
// repair
5559
if *repair {
@@ -97,20 +101,33 @@ func dbHome(port int) string {
97101
}
98102

99103
// 将Stdout, Stderr重定向到指定文件
100-
func redirectLogOutput(directory string) {
104+
func redirectLogOutput(directory string, port int, defdir string) string {
105+
106+
logpath := directory
107+
108+
loginfo, err := os.Stat(directory)
109+
//如果没有就是用默认的即 dbhome
110+
if os.IsNotExist(err) || !loginfo.IsDir() {
111+
directory = defdir
112+
}
113+
114+
logpath = fmt.Sprintf("%s/logs/%d/", logpath, port)
115+
os.MkdirAll(logpath, os.ModePerm)
116+
101117
oldout := os.Stdout
102-
var err error
103-
os.Stdout, err = os.OpenFile(directory+"stdout.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
118+
119+
os.Stdout, err = os.OpenFile(logpath+"/stdout.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
104120
if err != nil {
105121
panic(err)
106122
}
107123
// 同时输出到屏幕和文件
108124
stdlog.SetOutput(io.MultiWriter(oldout, os.Stdout))
109125

110-
os.Stderr, err = os.OpenFile(directory+"stderr.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
126+
os.Stderr, err = os.OpenFile(logpath+"stderr.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
111127
if err != nil {
112128
panic(err)
113129
}
130+
return logpath
114131
}
115132

116133
func splitHostPort(addr string) (host string, port int, err error) {

0 commit comments

Comments
 (0)