Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "E4/EAS/Logging and Tracing"
(→Retrieving LogService in e4 (Java)) |
(→Logging) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
This service is related to [[E4/EAS/Status Handling|status handling]]. | This service is related to [[E4/EAS/Status Handling|status handling]]. | ||
+ | |||
+ | ==Eclipse 4 == | ||
+ | ===Logging=== | ||
+ | *org.eclipse.e4.core.services.log.Logger | ||
+ | |||
+ | ====Retrieving LogService ==== | ||
+ | |||
+ | To get the default Logger implementation class you can use dependency injection in your Application model components. | ||
+ | <source lang="java"> | ||
+ | @Inject private Logger logger; | ||
+ | </source> | ||
+ | |||
+ | or via the IEclipseContext | ||
+ | <source lang="java"> | ||
+ | Logger log = (Logger) context.get(Logger.class.getName()); | ||
+ | </source> | ||
+ | |||
+ | '''Questions:''' | ||
+ | * How does logging relate to [[E4/EAS/Status Handling|status handling]]? Should the code above know that it needs a logger or should it be relying on some execution context to help determine how visible the status should be? | ||
==Eclipse 3.x API== | ==Eclipse 3.x API== | ||
Line 37: | Line 56: | ||
===Tracing=== | ===Tracing=== | ||
*org.eclipse.core.runtime.Platform.getDebugOption(String) | *org.eclipse.core.runtime.Platform.getDebugOption(String) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 04:14, 25 March 2016
Components are going to want a way to send information into a log somewhere. This needs to be pluggable so that they can contain and dictate where this information should go and how it should be logged. Ideally, the default output of what e4 applications produce should be consumable by the 'Error Log' view from Eclipse 3.x. It should also be possible for applications to enable tracing.
This service is related to status handling.
Contents
Eclipse 4
Logging
- org.eclipse.e4.core.services.log.Logger
Retrieving LogService
To get the default Logger implementation class you can use dependency injection in your Application model components.
@Inject private Logger logger;
or via the IEclipseContext
Logger log = (Logger) context.get(Logger.class.getName());
Questions:
- How does logging relate to status handling? Should the code above know that it needs a logger or should it be relying on some execution context to help determine how visible the status should be?
Eclipse 3.x API
Logging
- org.osgi.service.log.LogService
- org.eclipse.core.runtime.ILog
Retrieving LogService in 3.x
A developer can retrieve the OSGi LogService via a ServiceTracker.
private LogService getLogService() { fLogServiceTracker = new ServiceTracker(fBundleContext, LogService.class.getName(), null); return (LogService) fLogServiceTracker.getService(); }
Retrieving ILog
The org.eclipse.core.runtime.Platform class defines a static getLog(Bundle) method for retrieving an ILog.
Any subclass of org.eclipse.core.runtime.Plugin can also retrieve an ILog via the public getLog() method.
public class MyPlugin extends Plugin { public void start(BundleContext context) throws Exception { getLog().log(new Status(IStatus.OK, "org.eclipse.e4.core", "Starting org.eclipse.e4.core bundle..."); } public void stop(BundleContext context) throws Exception { getLog().log(new Status(IStatus.OK, "org.eclipse.e4.core", "Stopping org.eclipse.e4.core bundle..."); } }
Tracing
- org.eclipse.core.runtime.Platform.getDebugOption(String)