@cryptotaxi247 / kubo / commits / fb39a30c1

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 }