fsrepo components simplification: directly use eventlog
Tommi Virtanen committed
Mar 11, 2015 at 11:23 UTC
fb39a30c14a5ec93795bf0e4cc0161e7927d1ef4
2 files changed
+30
-72
repo/fsrepo/component/eventlog.go
deleted
-56
@@ -1,56 +0,0 @@
1
-package component
2
-
3
-import (
4
- "os"
5
- "path"
6
-
7
- config "github.com/jbenet/go-ipfs/repo/config"
8
- dir "github.com/jbenet/go-ipfs/thirdparty/dir"
9
- eventlog "github.com/jbenet/go-ipfs/thirdparty/eventlog"
10
-)
11
-
12
-func InitEventlogComponent(repoPath string, conf *config.Config) error {
13
- if err := dir.Writable(path.Join(repoPath, "logs")); err != nil {
14
- return err
15
- }
16
- return nil
17
-}
18
-
19
-func EventlogComponentIsInitialized(path string) bool {
20
- return true
21
-}
22
-
23
-type EventlogComponent struct {
24
- path string
25
-}
26
-
27
-func (c *EventlogComponent) SetPath(path string) {
28
- c.path = path // FIXME necessary?
29
-}
30
-
31
-func (c *EventlogComponent) Close() error {
32
- // TODO It isn't part of the current contract, but callers may like for us
33
- // to disable logging once the component is closed.
34
- eventlog.Configure(eventlog.Output(os.Stderr))
35
- return nil
36
-}
37
-
38
-func (c *EventlogComponent) Open(config *config.Config) error {
39
- // log.Debugf("writing eventlogs to ...", c.path)
40
- return configureEventLoggerAtRepoPath(config, c.path)
41
-}
42
-
43
-func configureEventLoggerAtRepoPath(c *config.Config, repoPath string) error {
44
- eventlog.Configure(eventlog.LevelInfo)
45
- eventlog.Configure(eventlog.LdJSONFormatter)
46
- rotateConf := eventlog.LogRotatorConfig{
47
- Filename: path.Join(repoPath, "logs", "events.log"),
48
- MaxSizeMB: c.Log.MaxSizeMB,
49
- MaxBackups: c.Log.MaxBackups,
50
- MaxAgeDays: c.Log.MaxAgeDays,
51
- }
52
- eventlog.Configure(eventlog.OutputRotatingLogFile(rotateConf))
53
- return nil
54
-}
55
-
56
-var _ Component = &EventlogComponent{}
repo/fsrepo/fsrepo.go
+30
-16
@@ -18,6 +18,7 @@ import (
18
lockfile "github.com/jbenet/go-ipfs/repo/fsrepo/lock"
19
serialize "github.com/jbenet/go-ipfs/repo/fsrepo/serialize"
20
dir "github.com/jbenet/go-ipfs/thirdparty/dir"
21
+ "github.com/jbenet/go-ipfs/thirdparty/eventlog"
22
u "github.com/jbenet/go-ipfs/util"
23
util "github.com/jbenet/go-ipfs/util"
24
debugerror "github.com/jbenet/go-ipfs/util/debugerror"
@@ -58,7 +59,6 @@ type FSRepo struct {
59
60
// TODO test
61
datastoreComponent component.DatastoreComponent
61
- eventlogComponent component.EventlogComponent
62
}
63
64
var _ repo.Repo = (*FSRepo)(nil)
@@ -146,6 +146,11 @@ func Init(repoPath string, conf *config.Config) error {
146
return err
147
}
148
}
149
+
150
+ if err := dir.Writable(path.Join(repoPath, "logs")); err != nil {
151
+ return err
152
+ }
153
+
154
return nil
155
}
156
@@ -191,6 +196,18 @@ func (r *FSRepo) openConfig() error {
196
return nil
197
}
198
199
+func configureEventLoggerAtRepoPath(c *config.Config, repoPath string) {
200
+ eventlog.Configure(eventlog.LevelInfo)
201
+ eventlog.Configure(eventlog.LdJSONFormatter)
202
+ rotateConf := eventlog.LogRotatorConfig{
203
+ Filename: path.Join(repoPath, "logs", "events.log"),
204
+ MaxSizeMB: c.Log.MaxSizeMB,
205
+ MaxBackups: c.Log.MaxBackups,
206
+ MaxAgeDays: c.Log.MaxAgeDays,
207
+ }
208
+ eventlog.Configure(eventlog.OutputRotatingLogFile(rotateConf))
209
+}
210
+
211
// Open returns an error if the repo is not initialized.
212
func (r *FSRepo) Open() error {
213
@@ -229,6 +246,9 @@ func (r *FSRepo) Open() error {
246
}
247
}
248
249
+ // log.Debugf("writing eventlogs to ...", c.path)
250
+ configureEventLoggerAtRepoPath(r.config, r.path)
251
+
252
return r.transitionToOpened()
253
}
254
@@ -246,6 +266,15 @@ func (r *FSRepo) Close() error {
266
return err
267
}
268
}
269
+
270
+ // This code existed in the previous versions, but
271
+ // EventlogComponent.Close was never called. Preserving here
272
+ // pending further discussion.
273
+ //
274
+ // TODO It isn't part of the current contract, but callers may like for us
275
+ // to disable logging once the component is closed.
276
+ // eventlog.Configure(eventlog.Output(os.Stderr))
277
+
278
return r.transitionToClosed()
279
}
280
@@ -458,20 +487,5 @@ func componentBuilders() []componentBuilder {
487
return nil
488
},
489
},
461
-
462
- // EventlogComponent
463
- componentBuilder{
464
- Init: component.InitEventlogComponent,
465
- IsInitialized: component.EventlogComponentIsInitialized,
466
- OpenHandler: func(r *FSRepo) error {
467
- c := component.EventlogComponent{}
468
- c.SetPath(r.path)
469
- if err := c.Open(r.config); err != nil {
470
- return err
471
- }
472
- r.eventlogComponent = c
473
- return nil
474
- },
475
- },
490
}
491
}