we use io.open for logging as it is atomic