Skip to content

Commit ea0197d

Browse files
committed
copy over entities poc for implementation and format code
1 parent 17354fa commit ea0197d

20 files changed

+3065
-2907
lines changed

angel/debug.go

+129-129
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,129 @@
1-
package main
2-
3-
import (
4-
"errors"
5-
"fmt"
6-
//"github.com/emicklei/hopwatch"
7-
"bufio"
8-
"bytes"
9-
"io"
10-
"log"
11-
"os"
12-
"runtime"
13-
"strings"
14-
"sync"
15-
"time"
16-
)
17-
18-
var (
19-
logger *log.Logger
20-
logfile *os.File
21-
accumulatewriter = bytes.NewBufferString("")
22-
accumulatelock sync.Mutex
23-
)
24-
25-
func initLog() {
26-
logger = log.New(accumulatewriter, "angel> ", log.Ldate|log.Ltime)
27-
go consumeLog()
28-
}
29-
30-
func consumeLog() {
31-
// only one consumer
32-
for {
33-
accumulatelock.Lock()
34-
if accumulatewriter.Len() <= 0 {
35-
accumulatelock.Unlock()
36-
time.Sleep(500 * time.Millisecond)
37-
continue
38-
}
39-
40-
s, _ := accumulatewriter.ReadString('\n')
41-
s = strings.TrimSpace(s)
42-
println(s)
43-
logfile.WriteString(s)
44-
logfile.WriteString("\n")
45-
accumulatelock.Unlock()
46-
}
47-
}
48-
49-
func initLogWriter() {
50-
defer accumulatelock.Unlock()
51-
accumulatelock.Lock()
52-
filename := time.Now().Format("logs/log-20060201-150405.txt")
53-
if logfile != nil {
54-
logfile.Close() // do not care about error
55-
}
56-
var err error
57-
logfile, err = os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
58-
if err != nil {
59-
println("logfile creation error: ", err)
60-
}
61-
}
62-
63-
func accumulateLog(r io.Reader) {
64-
// multiple
65-
br := bufio.NewReader(r)
66-
for {
67-
l, err := br.ReadString('\n')
68-
if err != nil {
69-
return
70-
}
71-
l = strings.TrimSpace(l)
72-
73-
accumulatelock.Lock()
74-
_, err = accumulatewriter.WriteString(l)
75-
_, err = accumulatewriter.WriteString("\n")
76-
accumulatelock.Unlock()
77-
78-
if err != nil {
79-
return
80-
}
81-
}
82-
}
83-
84-
// source https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/C24fRw8HDmI
85-
// from David Wright
86-
type ErrorTrace struct {
87-
err error
88-
trace string
89-
}
90-
91-
func NewErrorTrace(v ...interface{}) error {
92-
msg := fmt.Sprint(v...)
93-
pc, file, line, ok := runtime.Caller(2)
94-
if ok {
95-
fun := runtime.FuncForPC(pc)
96-
loc := fmt.Sprint(fun.Name(), "\n\t", file, ":", line)
97-
return ErrorTrace{err: errors.New(msg), trace: loc}
98-
}
99-
return errors.New("error generating error")
100-
}
101-
102-
func (et ErrorTrace) Error() string {
103-
return et.err.Error() + "\n " + et.trace
104-
}
105-
106-
func B(v ...interface{}) {
107-
ts := time.Now().Format("2006-02-01 15:04:05: ")
108-
println(ts, NewErrorTrace(v...).Error())
109-
}
110-
111-
func D(v ...interface{}) {
112-
if debuggingenabled {
113-
logger.Println(v...)
114-
}
115-
}
116-
117-
func DP(v ...interface{}) {
118-
if debuggingenabled {
119-
logger.Print(v...)
120-
}
121-
}
122-
123-
func P(v ...interface{}) {
124-
logger.Println(v...)
125-
}
126-
127-
func F(v ...interface{}) {
128-
logger.Fatalln(v...)
129-
}
1+
package main
2+
3+
import (
4+
"errors"
5+
"fmt"
6+
//"github.com/emicklei/hopwatch"
7+
"bufio"
8+
"bytes"
9+
"io"
10+
"log"
11+
"os"
12+
"runtime"
13+
"strings"
14+
"sync"
15+
"time"
16+
)
17+
18+
var (
19+
logger *log.Logger
20+
logfile *os.File
21+
accumulatewriter = bytes.NewBufferString("")
22+
accumulatelock sync.Mutex
23+
)
24+
25+
func initLog() {
26+
logger = log.New(accumulatewriter, "angel> ", log.Ldate|log.Ltime)
27+
go consumeLog()
28+
}
29+
30+
func consumeLog() {
31+
// only one consumer
32+
for {
33+
accumulatelock.Lock()
34+
if accumulatewriter.Len() <= 0 {
35+
accumulatelock.Unlock()
36+
time.Sleep(500 * time.Millisecond)
37+
continue
38+
}
39+
40+
s, _ := accumulatewriter.ReadString('\n')
41+
s = strings.TrimSpace(s)
42+
println(s)
43+
logfile.WriteString(s)
44+
logfile.WriteString("\n")
45+
accumulatelock.Unlock()
46+
}
47+
}
48+
49+
func initLogWriter() {
50+
defer accumulatelock.Unlock()
51+
accumulatelock.Lock()
52+
filename := time.Now().Format("logs/log-20060201-150405.txt")
53+
if logfile != nil {
54+
logfile.Close() // do not care about error
55+
}
56+
var err error
57+
logfile, err = os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
58+
if err != nil {
59+
println("logfile creation error: ", err)
60+
}
61+
}
62+
63+
func accumulateLog(r io.Reader) {
64+
// multiple
65+
br := bufio.NewReader(r)
66+
for {
67+
l, err := br.ReadString('\n')
68+
if err != nil {
69+
return
70+
}
71+
l = strings.TrimSpace(l)
72+
73+
accumulatelock.Lock()
74+
_, err = accumulatewriter.WriteString(l)
75+
_, err = accumulatewriter.WriteString("\n")
76+
accumulatelock.Unlock()
77+
78+
if err != nil {
79+
return
80+
}
81+
}
82+
}
83+
84+
// source https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/C24fRw8HDmI
85+
// from David Wright
86+
type ErrorTrace struct {
87+
err error
88+
trace string
89+
}
90+
91+
func NewErrorTrace(v ...interface{}) error {
92+
msg := fmt.Sprint(v...)
93+
pc, file, line, ok := runtime.Caller(2)
94+
if ok {
95+
fun := runtime.FuncForPC(pc)
96+
loc := fmt.Sprint(fun.Name(), "\n\t", file, ":", line)
97+
return ErrorTrace{err: errors.New(msg), trace: loc}
98+
}
99+
return errors.New("error generating error")
100+
}
101+
102+
func (et ErrorTrace) Error() string {
103+
return et.err.Error() + "\n " + et.trace
104+
}
105+
106+
func B(v ...interface{}) {
107+
ts := time.Now().Format("2006-02-01 15:04:05: ")
108+
println(ts, NewErrorTrace(v...).Error())
109+
}
110+
111+
func D(v ...interface{}) {
112+
if debuggingenabled {
113+
logger.Println(v...)
114+
}
115+
}
116+
117+
func DP(v ...interface{}) {
118+
if debuggingenabled {
119+
logger.Print(v...)
120+
}
121+
}
122+
123+
func P(v ...interface{}) {
124+
logger.Println(v...)
125+
}
126+
127+
func F(v ...interface{}) {
128+
logger.Fatalln(v...)
129+
}

0 commit comments

Comments
 (0)