12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package gonx
- import (
- "io"
- )
- type Reader struct {
- file io.Reader
- parser *Parser
- entries chan *Entry
- }
- func NewReader(logFile io.Reader, format string) *Reader {
- return &Reader{
- file: logFile,
- parser: NewParser(format),
- }
- }
- func NewNginxReader(logFile io.Reader, nginxConf io.Reader, formatName string) (reader *Reader, err error) {
- parser, err := NewNginxParser(nginxConf, formatName)
- if err != nil {
- return nil, err
- }
- reader = &Reader{
- file: logFile,
- parser: parser,
- }
- return
- }
- func (r *Reader) Read() (entry *Entry, err error) {
- if r.entries == nil {
- r.entries = MapReduce(r.file, r.parser, new(ReadAll))
- }
- entry, ok := <-r.entries
- if !ok {
- err = io.EOF
- }
- return
- }
|