/*
* Copyright 2012 Monits
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.monits.blackberry.commons.logger.appender.impl;
import net.rim.device.api.synchronization.UIDGenerator;
import net.rim.device.api.system.EventLogger;
import com.monits.blackberry.commons.logger.appender.Appender;
/**
* This appender log events in the Device logger.
* @author Rodrigo Pereyra.
*
*/
public class DeviceAppender implements Appender{
private String clazzToLog;
private int minimumLogLevel = EventLogger.getMinimumLevel();
private long guid;
/**
* Constructor.
* @param clazzToLog Name of the class / package to log.
*/
public DeviceAppender(String clazzToLog) {
this.clazzToLog = clazzToLog;
int scopingValue = UIDGenerator.getUniqueScopingValue();
guid = UIDGenerator.makeLUID(scopingValue, UIDGenerator.getUID(scopingValue));
EventLogger.register(guid, clazzToLog,EventLogger.VIEWER_STRING);
}
/* (non-Javadoc)
* @see com.monits.blackberry.commons.logger.appender.Appender#logEvent(java.lang.String, int, java.lang.String, java.lang.Throwable)
*/
public void logEvent(String loggerName, int logLevel, String formatedMessage, Throwable t) {
if (minimumLogLevel >= logLevel && loggerName.startsWith(clazzToLog)) {
if (t == null) {
EventLogger.logEvent(guid, formatedMessage.getBytes(), logLevel);
return;
}
EventLogger.logEvent(guid, formatedMessage.getBytes(), logLevel);
EventLogger.logEvent(guid, t.toString().getBytes(), logLevel);
}
}
/* (non-Javadoc)
* @see com.monits.blackberry.commons.logger.appender.Appender#getMinimumLogLevel()
*/
public int getMinimumLogLevel() {
return minimumLogLevel;
}
/* (non-Javadoc)
* @see com.monits.blackberry.commons.logger.appender.Appender#setMinimumLogLevel(int)
*/
public void setMinimumLogLevel(int logLevel) {
this.minimumLogLevel = logLevel;
EventLogger.setMinimumLevel(logLevel);
}
}