1)
There is info on the wiki under LazLogger. (search for LazLogger should bring up the page)
That isn't IDE specific, that is general info
2)
- run from a console (on Windows, compile IDE with -WC)
- or lazarus.exe --debug-log=file
and then as needed --debug-enable (or install ide-lazlogger package, wich can toggle those at runtime)
3) a file, see above
------------------
Event Logging.
scrap the above (Except first point)
Up till this line your question was about debugln.
debugln in the IDE has nothing todo with debugging your app. It will print out internals of the IDE, if you debug the IDE itself.
Also debugln is entirely independent of the debugger => it always (even if you run an app outside the IDE) prints to console, or to a file (which by default is specified by --debug-log= / but can be configured / see wiki )
On Windows there is a WinAPI call to write to a debugserver => and that can be displayed in the event log -- but will be mixed with all the rest.
(I need to google to find the details on calling this in the debugged app => might leave the google to you).
On Windows, you can compile your app with -WC (or disable GUI app) => and then if you debugln in your app, you have a console (that will work in the debugger or outside of it)
On Linux it goes always to the console or the debug window for the console output.