I find this usage of for comprehension kinda weird and it tends to generate suboptimal code. I'd go for
```scala
currentLogfile.map(openFile => openFile.channel.position() < openFile.channel.size()) match {
  case Some(false) => logFiles.hasNext  
  case Some(true) => true
  case None => false
}
```

(You can also replace the last two cases with `case o => o.getOrElse(false)`