X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=docs%2FDeveloper%2FUtilities%2FLogging.md;fp=docs%2FDeveloper%2FUtilities%2FLogging.md;h=77fe5d4c0f0c001495e8b1f62b241397f756796a;hp=0000000000000000000000000000000000000000;hb=a9ec58f08ccc02e65b1cab6aedff25e0cf3c6444;hpb=5998374f7e179cfaf451c220216adc18c823047f diff --git a/docs/Developer/Utilities/Logging.md b/docs/Developer/Utilities/Logging.md new file mode 100644 index 000000000..77fe5d4c0 --- /dev/null +++ b/docs/Developer/Utilities/Logging.md @@ -0,0 +1,67 @@ +For uniform logging in Simantics Platform [ The Simple Logging Facade for Java](http://www.slf4j.org/) (`org.slf4j.api`) and [Logback Project](http://logback.qos.ch/) (`ch.qos.logback.classic`) is included in Simantics SDK. To use the SLF4J logging API just include the following bundle in your own plugin's `MANIFEST.MF` dependencies: + + Require-Bundle: .., + org.slf4j.api + +An example usage of logging inside your own java code is presented below: + +~~~ + 1: import org.slf4j.Logger; + 2: import org.slf4j.LoggerFactory; + 3: + 4: public class Wombat { + 5: + 6: private static final Logger LOGGER = LoggerFactory.getLogger(Wombat.class); + 7: private Integer t; + 8: private Integer oldT; + 9: +10: public void setTemperature(Integer temperature) { +11: +12: oldT = t; +13: t = temperature; +14: +15: LOGGER.debug("Temperature set to {}. Old temperature was {}.", t, oldT); +16: +17: if(temperature.intValue() > 50) { +18: LOGGER.info("Temperature has risen above 50 degrees."); +19: } +20: } +21: } +~~~ + +The SLF4J Manual can be found here: http://www.slf4j.org/manual.html + +## Configuring Logback + +By default bundle `org.simantics.logback.configuration` contains the `logback.xml` configuration file in which the logging format and different appenders are defined. By default it looks like this: + +~~~ + + + + + + + %-5p [%d] %c: %m%n%rEx + + + + + + + + + + + +~~~ + +This configuration creates a single ''asynchronous'' `ConsoleAppender` which prints all the logging to `System.out` by. An example output would look like: + + INFO [2016-09-23 15:56:25,498] org.simantics.workbench.internal.SimanticsWorkbenchAdvisor: startPlatform finished + +It is possible to override this default configuration be giving a VM-argument for the application in format: + + -Dlogback.configurationFile="C:\logbacs\logback.xml" + +For detailed information see [Logback manual](http://logback.qos.ch/manual/).