Changes

Jump to: navigation, search

SG LOG

1,318 bytes removed, 19:58, 9 April 2019
Merge from SG_LOG() and cleanup
{{merge|<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>SG_LOG--log-level=[level]</code> and <code>--log-class=[class]</code> is a wrapper macro for the [[SimGearcommand line]] options. Where <code>logstreamlevel</code> class. By default, is one of the following:* <code>logstreambulk</code>* <code>debug</code>* <code>info</code>* <code>warn</code>* <code>alert</code>* <code>popup</code>And <code> class writes all output to </code> is a white space seperate list of any (combination) of the console. following:* <code>SG_LOGall</code> simplifies debugging for core developers who regularly [[Building FlightGear|compile from source]]* <code>ai</code>* <code>enviroment</code>* <code>flight</code>* etc. It allows you to easily associate your See {{simgear file|simgear/debug messages with a "channel" and with a "priority"/debug_types. This mechanism allows users to explicitly enable to certain log messages, while ignoring others. This can be helpful in order to troubleshoot certain problemsh}} 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>. <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 properties|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 &gt;{{=}} 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 ==
=== Wiki articles ===
* [[Command line options#Debugging Options]]
== External links ==
=== Source files ===
* {{simgear file|simgear/debug/logstream.cxx}}

Navigation menu