You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by sd...@apache.org on 2005/09/03 00:37:09 UTC
cvs commit: logging-log4j build.xml
sdeboy 2005/09/02 15:37:09
Modified: . build.xml
Added: src/java/org/apache/log4j/varia SoundAppender.java
Log:
Adding soundAppender - specify a URL to a file supported by Applet.newAudioClip
Revision Changes Path
1.1 logging-log4j/src/java/org/apache/log4j/varia/SoundAppender.java
Index: SoundAppender.java
===================================================================
/*
* Copyright 1999,2005 The Apache Software Foundation.
*
* 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 org.apache.log4j.varia;
import java.applet.Applet;
import java.applet.AudioClip;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.LoggingEvent;
/**
* Plays a sound clip created using Applet.newAudioClip when an event is received.
*
* If the audio format is not supported, a message stating the SoundAppender could
* not be initialized is logged.
*
* Use a filter in combination with this appender to control when the appender is
* triggered.
*
* For example, in the appender definition, include a LevelMatchFilter configured
* to accept WARN or greater, followed by a DenyAllFilter.
*
* @author Scott Deboy
*
*/
public final class SoundAppender extends AppenderSkeleton {
private AudioClip clip;
private String audioURL;
public SoundAppender() {
super(true);
}
/**
* Attempt to initialize the appender by creating a reference to an AudioClip.
*
* Will log a message if format is not supported, file not found, etc.
*
*/
public void activateOptions() {
/*
* AudioSystem.getAudioInputStream requires jdk 1.3,
* so we use applet.newaudioclip instead
*
*/
try {
clip = Applet.newAudioClip(new URL(audioURL));
} catch (MalformedURLException mue) {getLogger().error("unable to initialize SoundAppender", mue);}
if (clip == null) {
getLogger().error("Unable to initialize SoundAppender");
}
}
/**
* Accessor
*
* @return audio file
*/
public final String getAudioURL() {
return audioURL;
}
/**
* Mutator - common format for a file-based url:
* file:///c:/path/someaudioclip.wav
*
* @param audioURL
*/
public void setAudioURL(String audioURL) {
this.audioURL = audioURL;
}
/**
* Play the sound if an event is being processed
*/
protected void append(LoggingEvent event) {
if (clip != null) {
clip.play();
}
}
public void close() {
//nothing to do
}
}
1.166 +3 -2 logging-log4j/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/logging-log4j/build.xml,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -r1.165 -r1.166
--- build.xml 28 Jul 2005 18:32:18 -0000 1.165
+++ build.xml 2 Sep 2005 22:37:09 -0000 1.166
@@ -622,7 +622,8 @@
${stem}/pattern/*.class,
${stem}/or/*.class,
${stem}/or/sax/*.class,
- ${stem}/varia/List*Appender.class
+ ${stem}/varia/List*Appender.class,
+ ${stem}/varia/SoundAppender.class,
${stem}/plugins/*.class,
${stem}/config/*.class"
excludes="**/UnitTest**,
@@ -637,7 +638,7 @@
${stem}/net/JMSAppender.class,
${stem}/net/JMSSink.class,
${stem}/net/JMSReceiver.class,
- ${stem}/**/*BeanInfo.class
+ ${stem}/**/*BeanInfo.class,
${stem}/varia/LogFilePatternReceiver*.class,
${stem}/rule/LikeRule.class,
${stem}/net/Multicast*.class,
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org