When there's only a single `case` and no `default` clause, you don't need a `select` at all, the channel read will just block until a message comes through or the channel is closed.

But in this case you don't even need that, b/c you can do it all w/ a single `for` loop over the `range` of the channel:

```go
for msg := range lw.msgChan {
        if msg.err {
                 ir.LogError(fmt.Errorf(msg.msg))
        } else {
                ir.LogMessage(msg.msg))
        }
}
```