Blob


1 // +build ignore
3 package p9p
5 import (
6 "log"
7 "os"
8 )
10 type logging struct {
11 session Session
12 logger log.Logger
13 }
15 var _ Session = &logging{}
17 func NewLogger(prefix string, session Session) Session {
18 return &logging{
19 session: session,
20 logger: *log.New(os.Stdout, prefix, 0),
21 }
22 }
24 func (l *logging) Auth(afid Fid, uname, aname string) (Qid, error) {
25 qid, err := l.session.Auth(afid, uname, aname)
26 l.logger.Printf("Auth(%v, %s, %s) -> (%v, %v)", afid, uname, aname, qid, err)
27 return qid, err
28 }
30 func (l *logging) Attach(fid, afid Fid, uname, aname string) (Qid, error) {
31 qid, err := l.session.Attach(fid, afid, uname, aname)
32 l.logger.Printf("Attach(%v, %v, %s, %s) -> (%v, %v)", fid, afid, uname, aname, qid, err)
33 return qid, err
34 }
36 func (l *logging) Clunk(fid Fid) error {
37 return l.session.Clunk(fid)
38 }
40 func (l *logging) Remove(fid Fid) (err error) {
41 defer func() {
42 l.logger.Printf("Remove(%v) -> %v", fid, err)
43 }()
44 return l.session.Remove(fid)
45 }
47 func (l *logging) Walk(fid Fid, newfid Fid, names ...string) ([]Qid, error) {
48 return l.session.Walk(fid, newfid, names...)
49 }
51 func (l *logging) Read(fid Fid, p []byte, offset int64) (n int, err error) {
52 return l.session.Read(fid, p, offset)
53 }
55 func (l *logging) Write(fid Fid, p []byte, offset int64) (n int, err error) {
56 return l.session.Write(fid, p, offset)
57 }
59 func (l *logging) Open(fid Fid, mode int32) (Qid, error) {
60 return l.session.Open(fid, mode)
61 }
63 func (l *logging) Create(parent Fid, name string, perm uint32, mode uint32) (Qid, error) {
64 return l.session.Create(parent, name, perm, mode)
65 }
67 func (l *logging) Stat(fid Fid) (Dir, error) {
68 return l.session.Stat(fid)
69 }
71 func (l *logging) WStat(fid Fid, dir Dir) error {
72 return l.session.WStat(fid, dir)
73 }
75 func (l *logging) Version(msize int32, version string) (int32, string, error) {
76 return l.session.Version(msize, version)
77 }