I’m a newbie to Linux so this might be a dumb question, but I’m trying to use System.DebugLog in Linux and I’m wondering where do these messages go? In the documentation they say it goes to StdErr. No idea where to look for this. Help!
start the app from the command line
I open run Xojo from command line to see the messages for plugin loading or other error messages.
System.Debuglog messages are listed in the Message pane of Xojo as usual, just like in any other platform.
If you want to send messages from a built app, you can use System.Log
They are available in Linux Mint in
System Tools/Log File viewer syslog pretty much the same way as the Console in Mac OS X.
Having done a lot of this over the last few months, here are some tips. Assuming a command like this:
mycmd > output.txt
Print and StdOut.write will be written to the output.txt file. Without the redirect, they are written to the console.
StdErr.Write will be written to the screen in both cases. It is worth noting that it is also possible to redirect stderr.
If your app is being run as a background process, the output is written to messages or dmesg (Centos and Ubuntu respectively).
These are desktop apps in Linux.
Then I would suggest using system.log on linux. I think Michel is right in suggesting you use this instead of system.debuglog if you want to log the messages.
In our Linux daemons we have two levels of error tracking. We have a top level exception handler that manages conditions we expect might happen. We use system.log when the program drops into an unplanned exception.
System.Log(System.LogLevelError,App.ExecutableFile.DisplayName + ": [Run] Event Handler Exception: " + ex_.Message)
At least in Ubuntu, the results end up in the /var/log/syslog file.
syslog is a flat file that has many entries. It is easy to search with vi or another linux text editor. Alternatively, we ftp the file back to our workstations to search with a different editor. We add the exe display name to make it easier to search. This has worked quite well for us.