|
|
Line 1: |
Line 1: |
| {{merge|SG_LOG()}}
| | <code>SG_LOG</code> is a wrapper macro for the [[SimGear]] <code>logstream</code> class. By default, the <code>logstream</code> class writes all output to the [[console]]. <code>SG_LOG</code> simplifies debugging for core developers who regularly [[Building FlightGear|compile from source]]. It allows you to easily associate your debug messages with a "channel" and with a "priority". This mechanism allows users to explicitly enable to certain log messages, while ignoring others. This can be helpful in order to troubleshoot certain problems. |
|
| |
|
| <code>SG_LOG</code> is a wrapper macro for the [[SimGear]] <code>logstream</code> class. By default, the <code>logstream</code> class writes all output to the console. <code>SG_LOG</code> simplifies debugging for core developers who regularly [[Building FlightGear|compile from source]]. It allows you to easily associate your debug messages with a "channel" and with a "priority". This mechanism allows users to explicitly enable to certain log messages, while ignoring others. This can be helpful in order to troubleshoot certain problems. | | == Usage == |
| | Logging settings can be modified using the <code>--log-level=[level]</code> and <code>--log-class=[class]</code> [[command line]] options. Where <code>level</code> is one of the following: |
| | * <code>bulk</code> |
| | * <code>debug</code> |
| | * <code>info</code> |
| | * <code>warn</code> |
| | * <code>alert</code> |
| | * <code>popup</code> |
| | And <code>class</code> is a white space seperate list of any (combination) of the following: |
| | * <code>all</code> |
| | * <code>ai</code> |
| | * <code>enviroment</code> |
| | * <code>flight</code> |
| | * etc. See {{simgear file|simgear/debug/debug_types.h}} for the complete list of available classes. |
|
| |
|
| Logging settings can be modified using the <code>--log-level=[level]</code> [[command line]] option, detailed help about most available command line options can be obtained from the fgfs executable by calling it with the following arguments: <code>--help --verbose</code>.
| | If you are interested in simply logging certain properties to a file at runtime, you can use either FlightGear's built-in [[Logging properties|logging framework]], or the [[generic protocol]]. |
| | |
| <pre>
| |
| --log-level={bulk,debug,info,warn,alert}
| |
| Specify which logging level to use
| |
| | |
| --log-class=[ai,environment,flight,general,io,network,sound,terrain,...]
| |
| Specify which logging class(es) to use
| |
| | |
| </pre>
| |
| | |
| If you are interested in simply logging certain properties to a file at runtime, you can use either FlightGear's built-in logging framework, or the [[generic protocol]]. See [[Logging properties]] and [[Generic protocol]] for more details. | |
| | |
| {{FGCquote
| |
| |The standard mechanism for making FlightGear "log" stuff to the console (or log file) is using the SG_LOG() macro
| |
| |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=233211#p233211
| |
| |title=<nowiki>Re: 3.4 and the pain begins ...</nowiki>
| |
| |author=<nowiki>Hooray</nowiki>
| |
| |date=<nowiki>Thu Feb 26</nowiki>
| |
| }}
| |
| }}
| |
| | |
| == Development ==
| |
| {{FGCquote
| |
| |'m working a bit on reworking the logging exposed to Nasal, since it hasn't been updated in years (besides the addition of the never-used logprint() by James, the old printlog() only goes to the $FG_HOME/fgfs.log file if it would also go to the console and is implemented in globals.nas - aka can't be depended on in $FG_ROOT/Nasal/*.nas). This is going to eventually help with the Nasal REPL (aka to capture output), but I discovered something really weird: sglog().would_log() returns true for any priority >{{=}} INFO! This almost seems like a bug to me, but OTOH it is required by the SG_LOG() macro to ensure that the logging file is not ignored in the if statement (since SG_LOG() uses would_log()).
| |
| |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=202850#p202850
| |
| |title=<nowiki>sglog().would_log()</nowiki>
| |
| |author=<nowiki>Philosopher</nowiki>
| |
| |date=<nowiki>Fri Mar 07</nowiki>
| |
| }}
| |
| }}
| |
|
| |
|
| == Related content == | | == Related content == |
| === Wiki articles ===
| |
| * [[Command line options#Debugging Options]] | | * [[Command line options#Debugging Options]] |
|
| |
|
| | == External links == |
| === Source files === | | === Source files === |
| * {{simgear file|simgear/debug/logstream.cxx}} | | * {{simgear file|simgear/debug/logstream.cxx}} |