The regular hg log
command gives output with at least 4 lines per changeset. For example
changeset: 238:03a214f2a1cf
user: My Name
To get the description on one line even if original comment contains multiple line combine a splitlines and join function like below:
{join(splitlines(desc), ' ')}
Here is an example i'm using to extract data as CSV:
hg log --template "{node};{date|shortdate};{branch};{author};{join(splitlines(desc), ' ')};{diffstat};files: {join(files, ', ')}\n"