First, there is nothing incorrect or improper with the way you have coded and built your string.
The following can be used. But don't get carried away with line continuations as I used below. There is a max per string (I forget how many), and you don't want to overload them with a bunch of complicated calculations as that may actually make it harder for you to read:
Code:
strLog = strLog & "Date/Time: " & Format$(Now, "hh:mm:ss d-mmm-yyyy") & vbCrLf & _
"App: " & MainApp.Title & vbCrLf & _
"Version: " & MainApp.Major & "." & Format$(MainApp.Minor, "00") & "." & Format$(MainApp.Revision, "000") & vbCrLf & _
"Error Number: " & lngNumber & vbCrLf & _
"Error Desc: " & strDescription & vbCrLf
Edited: If this string is actually going to be printed to a file within the same routine, it would be more proper to print each line vs building the string and printing it later:
Code:
Print #FileNr, "Date/Time: " & Format$(Now, "hh:mm:ss d-mmm-yyyy")
Print #FileNr, "App: " & MainApp.Title
Print #FileNr, "Version: " & MainApp.Major & "." & Format$(MainApp.Minor, "00") & "." & Format$(MainApp.Revision, "000")
Print #FileNr, "Error Number: " & lngNumber
Print #FileNr, "Error Desc: " & strDescription