Skip to content

Commit 6cc4b64

Browse files
committedSep 17, 2019
feat: verbose logs.
1 parent 0c55e22 commit 6cc4b64

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed
 

‎converter/directory.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,18 @@ func (c *directoryConverter) convertFile(csvDirName, jsonDirName string, file os
6262
return 0, err
6363
}
6464
w := bufio.NewWriterSize(jsonWriter, 4096*2) // 8KB buf size
65-
rows := c.convert0(bufio.NewReader(csvReader), w)
65+
rows := c.convert0(wrappedReader{bufio.NewReader(csvReader), fileName}, w)
6666
if err := w.Flush(); err != nil {
6767
return rows, err
6868
}
6969
return rows, err
7070
}
7171

72+
type wrappedReader struct {
73+
io.Reader
74+
fileName string
75+
}
76+
7277
func (c *directoryConverter) createCsvReader(reader io.Reader) *csv.Reader {
7378
csvReader := csv.NewReader(reader)
7479
dirConfig := c.DirectoryConfig
@@ -80,7 +85,7 @@ func (c *directoryConverter) createCsvReader(reader io.Reader) *csv.Reader {
8085
return csvReader
8186
}
8287

83-
func (c *directoryConverter) convert0(csvReader io.Reader, jsonWriter io.StringWriter) uint32 {
88+
func (c *directoryConverter) convert0(csvReader wrappedReader, jsonWriter io.StringWriter) uint32 {
8489
var rowCount uint32 = 0
8590
var firstLine = true
8691
r := c.createCsvReader(csvReader)
@@ -93,7 +98,7 @@ func (c *directoryConverter) convert0(csvReader io.Reader, jsonWriter io.StringW
9398
if err == io.EOF {
9499
break
95100
} else if err != nil {
96-
log.Fatal(err)
101+
log.Fatalf("\nFile: %s. Error. %+v.", csvReader.fileName, err)
97102
}
98103
data, err := c.DirectoryConfig.Parse(record)
99104
if err != nil {

‎converter/directory_test.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func TestFileConverter_Convert(t *testing.T) {
1717

1818
reader := strings.NewReader("a_string,false,idx1\na_string,false,idx5")
1919
writer := &bytes.Buffer{}
20-
row := c.convert0(reader, writer)
20+
row := c.convert0(wrappedReader{reader, "strings.reader"}, writer)
2121

2222
// JSON response
2323
expectedJSON := `{"a":"a_string","b":false,"d":"11"}`
@@ -30,6 +30,17 @@ func TestFileConverter_Convert(t *testing.T) {
3030
})
3131
}
3232

33+
func BenchmarkConverter_Convert(b *testing.B) {
34+
configuration, _ := config.ParseConfig(configTxt)
35+
dirConfig := configuration.Directories[0]
36+
c := &directoryConverter{DirectoryConfig: dirConfig}
37+
reader := strings.NewReader("a_string,false,idx1\na_string,false,idx5")
38+
writer := &bytes.Buffer{}
39+
for i := 0; i < b.N; i++ {
40+
c.convert0(wrappedReader{reader, "strings.reader"}, writer)
41+
}
42+
}
43+
3344
var configTxt = `
3445
root = "."
3546
out_directory = "./out"

‎main.go

+3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ package main
22

33
import (
44
"github.com/liemle3893/csv2json/cmd"
5+
"log"
56
)
67

8+
79
func main() {
10+
log.SetFlags(log.LstdFlags | log.Lshortfile)
811
cmd.Execute()
912
}

0 commit comments

Comments
 (0)
Please sign in to comment.