@@ -28,7 +28,8 @@ func main() {
28
28
slaveof := flag .String ("slaveof" , "" , "replication" )
29
29
procs := flag .Int ("procs" , 8 , "GOMAXPROCS" )
30
30
repair := flag .Bool ("repair" , false , "repaire rocksdb" )
31
- logpath := flag .String ("logpath" , "/home/data" , "config goredis log path and synclog path" )
31
+ datapath := flag .String ("datapath" , "/data" , "config goredis data path default path [/data/goredis_${port}/]" )
32
+ logpath := flag .String ("logpath" , "/home/logs/" , "config goredis log path and synclog path ,default path [/home/logs/goredis_${port}]" )
32
33
flag .Parse ()
33
34
34
35
if * version {
@@ -40,7 +41,7 @@ func main() {
40
41
41
42
opt := goredis_server .NewOptions ()
42
43
opt .SetBind (fmt .Sprintf ("%s:%d" , * host , * port ))
43
- dbhome := dbHome (* port )
44
+ dbhome := dbHome (* datapath , * port )
44
45
opt .SetDirectory (dbhome )
45
46
46
47
if len (* slaveof ) > 0 {
@@ -52,7 +53,9 @@ func main() {
52
53
}
53
54
54
55
// 重定向日志输出位置
55
- opt .SetLogDir (redirectLogOutput (* logpath , * port , dbhome ))
56
+ logdir := redirectLogOutput (* logpath , * port )
57
+ opt .SetLogDir (logdir )
58
+ stdlog .Println ("logdir:[" + logdir + "]\t dbhome:[" + dbhome + "]" )
56
59
57
60
// repair
58
61
if * repair {
@@ -87,37 +90,40 @@ func init() {
87
90
})
88
91
}
89
92
90
- // 主路径,默认在/data下创建,否则在/tmp下
91
- func dbHome (port int ) string {
92
- dbhome := "/data"
93
- finfo , e1 := os .Stat (dbhome )
94
- if os .IsNotExist (e1 ) || ! finfo .IsDir () {
95
- dbhome = "/tmp"
93
+ /**
94
+ * 构建dbhome,使用datapath中的路径
95
+ */
96
+ func dbHome (datapath string , port int ) string {
97
+
98
+ dbhome := fmt .Sprintf ("%s/goredis_%d/" , datapath , port )
99
+
100
+ finfo , err := os .Stat (dbhome )
101
+ if os .IsNotExist (err ) || ! finfo .IsDir () {
102
+ os .MkdirAll (dbhome , os .ModePerm )
96
103
}
97
- directory := fmt .Sprintf ("%s/goredis_%d/" , dbhome , port )
98
- os .MkdirAll (directory , os .ModePerm )
99
- return directory
104
+ return dbhome
100
105
}
101
106
102
107
/**
103
108
* 将Stdout, Stderr重定向到指定文件
104
109
* 并返回当前日志路径
105
110
*/
106
- func redirectLogOutput (directory string , port int , defdir string ) string {
111
+ func redirectLogOutput (directory string , port int ) string {
107
112
108
113
oldout := os .Stdout
109
114
110
- logpath := directory
115
+ logpath := fmt .Sprintf ("%s/goredis_%d/" , directory , port )
116
+
117
+ loginfo , err := os .Stat (logpath )
111
118
112
- loginfo , err := os .Stat (directory )
113
- //如果没有就是用默认的即 dbhome
119
+ /**
120
+ * 如果logpath不存在
121
+ * 则创建
122
+ */
114
123
if os .IsNotExist (err ) || ! loginfo .IsDir () {
115
- directory = defdir
124
+ os . MkdirAll ( logpath , os . ModePerm )
116
125
}
117
126
118
- logpath = fmt .Sprintf ("%s/logs/%d/" , logpath , port )
119
- os .MkdirAll (logpath , os .ModePerm )
120
-
121
127
os .Stdout , err = os .OpenFile (logpath + "stdout.log" , os .O_WRONLY | os .O_CREATE | os .O_APPEND , os .ModePerm )
122
128
123
129
if err != nil {
0 commit comments