blob: 94bc0398040fb3ec0fb0c14f1b943f66b9ceed57 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 Sybase, Inc. and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jsf.common.ui.internal.logging;
import java.text.MessageFormat;
import java.util.ResourceBundle;
import org.eclipse.core.runtime.ILog;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.osgi.framework.Bundle;
/**
* A resource bundle driven logger
*
*/
public class Logger {
private ResourceBundle resourceBundle;
private ILog log;
private String bundleId;
/**
* @param bundle
* @param resourceBundle
*/
public Logger(Bundle bundle, ResourceBundle resourceBundle) {
log = Platform.getLog(bundle);
this.resourceBundle = resourceBundle;
bundleId = bundle.getSymbolicName();
if (resourceBundle == null) {
IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
"The resource Bundle for logger could not be null!", null);
log.log(status);
}
}
/**
* @param key
* @param arg0
*/
public void info(String key, String arg0) {
Object[] args = new Object[1];
args[0] = arg0;
MessageFormat formatter = new MessageFormat(getString(key));
String message = formatter.format(args);
IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
message, null);
log.log(status);
}
/**
* @param message
*/
public void info(String message) {
IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
message, null);
log.log(status);
}
/**
* @param key
* @param e
*/
public void info(String key, Throwable e) {
String message = getString(key);
IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
message, e);
log.log(status);
}
/**
* @param key
* @param arg0
* @param e
*/
public void info(String key, String arg0, Throwable e) {
Object[] args = new Object[1];
args[0] = arg0;
MessageFormat formatter = new MessageFormat(getString(key));
String message = formatter.format(args);
IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
message, null);
log.log(status);
}
/**
* @param key
* @param arg0
* @param arg1
* @param e
*/
public void info(String key, String arg0, String arg1, Throwable e) {
Object[] args = new Object[1];
args[0] = arg0;
args[1] = arg1;
MessageFormat formatter = new MessageFormat(getString(key));
String message = formatter.format(args);
IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
message, e);
log.log(status);
}
/**
* @param key
*/
public void error(String key) {
String message = getString(key);
IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
message, null);
log.log(status);
}
/**
* @param e
*/
public void error(Throwable e) {
IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK, "", e);
log.log(status);
}
/**
* @param key
* @param e
*/
public void error(String key, Throwable e) {
String message = getString(key);
IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
message, e);
log.log(status);
}
/**
* @param key
* @param arg0
*/
public void error(String key, String arg0) {
Object[] args = new Object[1];
args[0] = arg0;
MessageFormat formatter = new MessageFormat(getString(key));
String message = formatter.format(args);
IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
message, null);
log.log(status);
}
/**
* @param key
* @param arg
* @param e
*/
public void error(String key, String arg, Throwable e) {
Object[] args = new Object[1];
args[0] = arg;
MessageFormat formatter = new MessageFormat(getString(key));
String message = formatter.format(args);
IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
message, e);
log.log(status);
}
/**
* @param key
* @param arg0
* @param arg1
* @param e
*/
public void error(String key, String arg0, String arg1, Throwable e) {
Object[] args = new Object[1];
args[0] = arg0;
args[1] = arg1;
MessageFormat formatter = new MessageFormat(getString(key));
String message = formatter.format(args);
IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
message, e);
log.log(status);
}
/**
* @param key
* @return the resource for the key, or an error message if
* resourceBundle.getString(key) throws an Exception
*/
private String getString(String key)
{
try
{
return resourceBundle.getString(key);
}
// suppress non-error exceptions so that the logging operation
// itself (usually called in response to an exception) does not
// throw a new exception
catch(Exception e)
{
return "!!missing resource: " + key + "!!";
}
}
}