cross platform log