Jazz logging/tracing question
Hello,
I have some extensions and want to use the same logging/tracing APIs
that Jazz uses in Client/Server/Build components. I found out that Jazz
uses log4j throughout Client/Server/Build components. Example code is:
Log log = LogFactory.getLog(componentId);
I just want to confirm that my understanding is correct. Is there any
guideline on what logging/tracing APIs that Jazz extensions should use?
Is the "componentId" the feature/plugin ID or the service ID?
Thank you.
I have some extensions and want to use the same logging/tracing APIs
that Jazz uses in Client/Server/Build components. I found out that Jazz
uses log4j throughout Client/Server/Build components. Example code is:
Log log = LogFactory.getLog(componentId);
I just want to confirm that my understanding is correct. Is there any
guideline on what logging/tracing APIs that Jazz extensions should use?
Is the "componentId" the feature/plugin ID or the service ID?
Thank you.
6 answers
I would recommend using the commons logging api instead of log4j. It
will allows other logging implementations to be supported in the future.
We typically get loggers based on the class. For example :
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(ProvisionService.class);
Richard
Jazz Web UI and Server Development.
hvlam wrote:
will allows other logging implementations to be supported in the future.
We typically get loggers based on the class. For example :
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(ProvisionService.class);
Richard
Jazz Web UI and Server Development.
hvlam wrote:
Hello,
I have some extensions and want to use the same logging/tracing APIs
that Jazz uses in Client/Server/Build components. I found out that Jazz
uses log4j throughout Client/Server/Build components. Example code is:
Log log = LogFactory.getLog(componentId);
I just want to confirm that my understanding is correct. Is there any
guideline on what logging/tracing APIs that Jazz extensions should use?
Is the "componentId" the feature/plugin ID or the service ID?
Thank you.
Hi Richard,
Thank you for your prompt reply. I thought LogFactory and Log classes
belong to log4j. Maybe I was wrong. So the example you showed below is
the one that you would recommend us to use. Again, thank you.
Richard Backhouse wrote:
Thank you for your prompt reply. I thought LogFactory and Log classes
belong to log4j. Maybe I was wrong. So the example you showed below is
the one that you would recommend us to use. Again, thank you.
Richard Backhouse wrote:
I would recommend using the commons logging api instead of log4j. It
will allows other logging implementations to be supported in the future.
We typically get loggers based on the class. For example :
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(ProvisionService.class);
Richard
Jazz Web UI and Server Development.
hvlam wrote:
Hello,
I have some extensions and want to use the same logging/tracing APIs
that Jazz uses in Client/Server/Build components. I found out that
Jazz uses log4j throughout Client/Server/Build components. Example
code is:
Log log = LogFactory.getLog(componentId);
I just want to confirm that my understanding is correct. Is there any
guideline on what logging/tracing APIs that Jazz extensions should use?
Is the "componentId" the feature/plugin ID or the service ID?
Thank you.
The log class names and some of the method names are very similar
between commons logging and log4j.
Richard
Jazz Web UI and Server Development
hvlam wrote:
between commons logging and log4j.
Richard
Jazz Web UI and Server Development
hvlam wrote:
Hi Richard,
Thank you for your prompt reply. I thought LogFactory and Log classes
belong to log4j. Maybe I was wrong. So the example you showed below is
the one that you would recommend us to use. Again, thank you.
Richard Backhouse wrote:
I would recommend using the commons logging api instead of log4j. It
will allows other logging implementations to be supported in the future.
We typically get loggers based on the class. For example :
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(ProvisionService.class);
Richard
Jazz Web UI and Server Development.
hvlam wrote:
Hello,
I have some extensions and want to use the same logging/tracing APIs
that Jazz uses in Client/Server/Build components. I found out that
Jazz uses log4j throughout Client/Server/Build components. Example
code is:
Log log = LogFactory.getLog(componentId);
I just want to confirm that my understanding is correct. Is there
any guideline on what logging/tracing APIs that Jazz extensions
should use?
Is the "componentId" the feature/plugin ID or the service ID?
Thank you.
If I use the following logging APIs :
log.info(...)
log.warn(...)
log.error(...)
log.debug(...)
log.trace(...)
in my build or server extension code. Where would these go? I don't
see the .log file in the workspace/.metadata directory under the
buildengine and server. Thank you.
Richard Backhouse wrote:
log.info(...)
log.warn(...)
log.error(...)
log.debug(...)
log.trace(...)
in my build or server extension code. Where would these go? I don't
see the .log file in the workspace/.metadata directory under the
buildengine and server. Thank you.
Richard Backhouse wrote:
The log class names and some of the method names are very similar
between commons logging and log4j.
Richard
Jazz Web UI and Server Development
hvlam wrote:
Hi Richard,
Thank you for your prompt reply. I thought LogFactory and Log classes
belong to log4j. Maybe I was wrong. So the example you showed below
is the one that you would recommend us to use. Again, thank you.
Richard Backhouse wrote:
I would recommend using the commons logging api instead of log4j. It
will allows other logging implementations to be supported in the future.
We typically get loggers based on the class. For example :
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(ProvisionService.class);
Richard
Jazz Web UI and Server Development.
hvlam wrote:
Hello,
I have some extensions and want to use the same logging/tracing APIs
that Jazz uses in Client/Server/Build components. I found out that
Jazz uses log4j throughout Client/Server/Build components. Example
code is:
Log log = LogFactory.getLog(componentId);
I just want to confirm that my understanding is correct. Is there
any guideline on what logging/tracing APIs that Jazz extensions
should use?
Is the "componentId" the feature/plugin ID or the service ID?
Thank you.
Where and what you see in the log will depend on how you are configuring
the log implementation.
Assuming that your launch references the "org.apache.commons.logging"
and "org.apache.log4j" bundles provided with Jazz the log can be
configured by specifying a path to a log4j.properties file via a System
property. In your launch vm arguments you can add a
-Dlog4j.configuration=file:///${workspace_loc}/<path>
The log4j.properties will dictate the level of logging and where the
logging is sent to. For example in log4j.properties
log4j.rootLogger=WARN, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p
%-50.50c - %m%n
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=jazz.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p
%-50.50c - %m%n
Will set the default log level to WARN and will send the log messages to
both stdout and a file called jazz.log (found where the process is
actually launched from).
You can find out more information for log4j configuration on the Apache
website.
Richard
Jazz Web UI and Server development
hvlam wrote:
the log implementation.
Assuming that your launch references the "org.apache.commons.logging"
and "org.apache.log4j" bundles provided with Jazz the log can be
configured by specifying a path to a log4j.properties file via a System
property. In your launch vm arguments you can add a
-Dlog4j.configuration=file:///${workspace_loc}/<path>
The log4j.properties will dictate the level of logging and where the
logging is sent to. For example in log4j.properties
log4j.rootLogger=WARN, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p
%-50.50c - %m%n
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=jazz.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p
%-50.50c - %m%n
Will set the default log level to WARN and will send the log messages to
both stdout and a file called jazz.log (found where the process is
actually launched from).
You can find out more information for log4j configuration on the Apache
website.
Richard
Jazz Web UI and Server development
hvlam wrote:
If I use the following logging APIs :
log.info(...)
log.warn(...)
log.error(...)
log.debug(...)
log.trace(...)
in my build or server extension code. Where would these go? I don't
see the .log file in the workspace/.metadata directory under the
buildengine and server. Thank you.
Richard Backhouse wrote:
The log class names and some of the method names are very similar
between commons logging and log4j.
Richard
Jazz Web UI and Server Development
hvlam wrote:
Hi Richard,
Thank you for your prompt reply. I thought LogFactory and Log
classes belong to log4j. Maybe I was wrong. So the example you
showed below is the one that you would recommend us to use. Again,
thank you.
Richard Backhouse wrote:
I would recommend using the commons logging api instead of log4j. It
will allows other logging implementations to be supported in the
future.
We typically get loggers based on the class. For example :
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(ProvisionService.class);
Richard
Jazz Web UI and Server Development.
hvlam wrote:
Hello,
I have some extensions and want to use the same logging/tracing
APIs that Jazz uses in Client/Server/Build components. I found out
that Jazz uses log4j throughout Client/Server/Build components.
Example code is:
Log log = LogFactory.getLog(componentId);
I just want to confirm that my understanding is correct. Is there
any guideline on what logging/tracing APIs that Jazz extensions
should use?
Is the "componentId" the feature/plugin ID or the service ID?
Thank you.