Skip to content

Commit

Permalink
More cleanup, use java formatting plugin (#89)
Browse files Browse the repository at this point in the history
* Remove release-notes

* Fix version at 0.13.1

* Update with formatting changes

* Add freshmark shield

* Update README
  • Loading branch information
wsargent authored Oct 5, 2019
1 parent c9a6b35 commit 1f71843
Show file tree
Hide file tree
Showing 202 changed files with 7,322 additions and 7,353 deletions.
23 changes: 19 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
[<img src="https://img.shields.io/travis/tersesystems/terse-logback.svg"/>](https://travis-ci.org/tersesystems/terse-logback)
[ ![Download](https://api.bintray.com/packages/tersesystems/maven/terse-logback/images/download.svg?version=0.13.0) ](https://bintray.com/tersesystems/maven/terse-logback/0.13.0/link)

# Structured Logging Example with Logback
<!---freshmark shields
output = [
link(shield('Bintray', 'bintray', 'tersesystems:terse-logback', 'blue'), 'https://bintray.com/tersesystems/maven/terse-logback/view'),
link(shield('Latest version', 'latest', '{{version}}', 'blue'), 'https://github.com/tersesystems/terse-logback/releases/latest'),
link(shield('License CC0', 'license', 'CC0', 'blue'), 'https://tldrlegal.com/license/creative-commons-cc0-1.0-universal'),
'',
link(shield('Release Notes', 'release-notes', '{{version}}', 'brightgreen'), 'docs/release-notes.md'),
link(image('Travis CI', 'https://travis-ci.org/tersesystems/terse-logback.svg?branch=master'), 'https://travis-ci.org/tersesystems/terse-logback')
].join('\n')
-->
[![Bintray](https://img.shields.io/badge/bintray-tersesystems%3Aterse--logback-blue.svg)](https://bintray.com/tersesystems/maven/terse-logback/view)
[![Latest version](https://img.shields.io/badge/latest-0.13.1-blue.svg)](https://github.com/tersesystems/terse-logback/releases/latest)
[![License CC0](https://img.shields.io/badge/license-CC0-blue.svg)](https://tldrlegal.com/license/creative-commons-cc0-1.0-universal)

[![Release Notes](https://img.shields.io/badge/release--notes-0.13.1-brightgreen.svg)](docs/release-notes.md)
[![Travis CI](https://travis-ci.org/tersesystems/terse-logback.svg?branch=master)](https://travis-ci.org/tersesystems/terse-logback)
<!---freshmark /shields -->

# Terse Logback

This is a Java project that shows how to use [Logback](https://logback.qos.ch/manual/index.html) effectively for structured logging. It should show how you configure Logback, and how you can reduce the amount of complexity in your end projects by packaging your logging appenders and configurators in a distinct project.

Expand Down
16 changes: 16 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,21 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
plugins {
id 'java'
id 'com.gradle.build-scan' version '2.2.1'
id "org.shipkit.java" version "2.2.5"
id "com.github.hierynomus.license" version "0.15.0"
id 'com.diffplug.gradle.spotless' version '3.24.3'

//id 'org.inferred.processors' version '2.3.0'
}

spotless {
freshmark {
propertiesFile('version.properties')
}
}

allprojects {
repositories {
jcenter()
Expand All @@ -24,6 +33,13 @@ allprojects {

subprojects { subproj ->
apply plugin: 'java'
apply plugin: 'com.diffplug.gradle.spotless'

spotless {
java {
googleJavaFormat()
}
}

dependencies {
testImplementation 'org.apiguardian:apiguardian-api:1.1.0'
Expand Down
197 changes: 0 additions & 197 deletions docs/release-notes.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,29 +15,29 @@

public class AudioAppender extends AppenderBase<ILoggingEvent> implements PlayerAttachable {

private Player player;
private Player player;

@Override
protected void append(ILoggingEvent eventObject) {
player.play();
}
@Override
protected void append(ILoggingEvent eventObject) {
player.play();
}

@Override
public void addPlayer(Player player) {
this.player = player;
}
@Override
public void addPlayer(Player player) {
this.player = player;
}

@Override
public void clearAllPlayers() {
this.player = null;
}
@Override
public void clearAllPlayers() {
this.player = null;
}

@Override
public void start() {
if (player == null) {
addError("No player found!");
} else {
super.start();
}
@Override
public void start() {
if (player == null) {
addError("No player found!");
} else {
super.start();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,38 +11,37 @@
package com.tersesystems.logback.audio;

import com.tersesystems.logback.classic.TerseBasicMarker;

import java.io.InputStream;
import java.net.URL;
import java.nio.file.Path;

public class AudioMarker extends TerseBasicMarker implements Player {

private static final String MARKER_NAME = "TS_AUDIO_MARKER";
private static final String MARKER_NAME = "TS_AUDIO_MARKER";

private final Player player;
private final Player player;

public AudioMarker(URL url) {
super(MARKER_NAME);
player = SimplePlayer.fromURL(url);
}
public AudioMarker(URL url) {
super(MARKER_NAME);
player = SimplePlayer.fromURL(url);
}

public AudioMarker(Path path) {
super(MARKER_NAME);
player = SimplePlayer.fromPath(path);
}
public AudioMarker(Path path) {
super(MARKER_NAME);
player = SimplePlayer.fromPath(path);
}

public AudioMarker(InputStream inputStream) {
super(MARKER_NAME);
player = SimplePlayer.fromInputStream(inputStream);
}
public AudioMarker(InputStream inputStream) {
super(MARKER_NAME);
player = SimplePlayer.fromInputStream(inputStream);
}

public AudioMarker(Player player) {
super(MARKER_NAME);
this.player = player;
}
public AudioMarker(Player player) {
super(MARKER_NAME);
this.player = player;
}

public void play() {
player.play();
}
public void play() {
player.play();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,31 @@

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import org.slf4j.Marker;

import java.util.Iterator;
import org.slf4j.Marker;

public class AudioMarkerAppender extends AppenderBase<ILoggingEvent> {

@Override
protected void append(ILoggingEvent eventObject) {
writePlayerMarkerIfNecessary(eventObject.getMarker());
}
@Override
protected void append(ILoggingEvent eventObject) {
writePlayerMarkerIfNecessary(eventObject.getMarker());
}

private void writePlayerMarkerIfNecessary(Marker marker) {
if (marker != null) {
if (isPlayerMarker(marker)) {
((Player) marker).play();
}
private void writePlayerMarkerIfNecessary(Marker marker) {
if (marker != null) {
if (isPlayerMarker(marker)) {
((Player) marker).play();
}

if (marker.hasReferences()) {
for (Iterator<Marker> i = marker.iterator(); i.hasNext();) {
writePlayerMarkerIfNecessary(i.next());
}
}
if (marker.hasReferences()) {
for (Iterator<Marker> i = marker.iterator(); i.hasNext(); ) {
writePlayerMarkerIfNecessary(i.next());
}
}
}
}

private static boolean isPlayerMarker(Marker marker) {
return marker instanceof Player;
}
private static boolean isPlayerMarker(Marker marker) {
return marker instanceof Player;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,48 +12,46 @@

import ch.qos.logback.core.spi.ContextAwareBase;
import ch.qos.logback.core.spi.LifeCycle;

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FilePlayer extends ContextAwareBase implements Player, LifeCycle {

private String file;
private Path path;
private volatile boolean started = false;

public FilePlayer() {
}

public void setFile(String file) {
this.file = file;
}

@Override
public void play() {
SimplePlayer.fromPath(path).play();
}

@Override
public void start() {
path = Paths.get(file);
if (Files.exists(path)) {
started = true;
} else {
addError(String.format("Path %s does not exist!", path));
started = false;
}
}

@Override
public void stop() {
path = null;
started = false;
}

@Override
public boolean isStarted() {
return started;
private String file;
private Path path;
private volatile boolean started = false;

public FilePlayer() {}

public void setFile(String file) {
this.file = file;
}

@Override
public void play() {
SimplePlayer.fromPath(path).play();
}

@Override
public void start() {
path = Paths.get(file);
if (Files.exists(path)) {
started = true;
} else {
addError(String.format("Path %s does not exist!", path));
started = false;
}
}

@Override
public void stop() {
path = null;
started = false;
}

@Override
public boolean isStarted() {
return started;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,38 +10,40 @@
*/
package com.tersesystems.logback.audio;

import javax.sound.sampled.*;
import java.io.IOException;
import java.util.function.Supplier;
import javax.sound.sampled.*;

public interface PlayMethods {

default void play(Supplier<AudioInputStream> supplier) {
// https://docs.oracle.com/javase/tutorial/sound/playing.html
try (final AudioInputStream in = supplier.get()) {
AudioFormat baseFormat = in.getFormat();
AudioFormat targetFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(),
16,
baseFormat.getChannels(),
baseFormat.getChannels() * 2,
baseFormat.getSampleRate(),
false);
try (final AudioInputStream dataIn = AudioSystem.getAudioInputStream(targetFormat, in)) {
DataLine.Info info = new DataLine.Info(Clip.class, targetFormat);
Clip clip = (Clip) AudioSystem.getLine(info);
if (clip != null) {
clip.addLineListener(event -> {
if (event.getType() == LineEvent.Type.STOP)
clip.close();
});
default void play(Supplier<AudioInputStream> supplier) {
// https://docs.oracle.com/javase/tutorial/sound/playing.html
try (final AudioInputStream in = supplier.get()) {
AudioFormat baseFormat = in.getFormat();
AudioFormat targetFormat =
new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(),
16,
baseFormat.getChannels(),
baseFormat.getChannels() * 2,
baseFormat.getSampleRate(),
false);
try (final AudioInputStream dataIn = AudioSystem.getAudioInputStream(targetFormat, in)) {
DataLine.Info info = new DataLine.Info(Clip.class, targetFormat);
Clip clip = (Clip) AudioSystem.getLine(info);
if (clip != null) {
clip.addLineListener(
event -> {
if (event.getType() == LineEvent.Type.STOP) clip.close();
});

clip.open(dataIn);
clip.start();
}
}
} catch (LineUnavailableException | IOException e) {
throw new IllegalStateException(e);
clip.open(dataIn);
clip.start();
}
}
} catch (LineUnavailableException | IOException e) {
throw new IllegalStateException(e);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
package com.tersesystems.logback.audio;

public interface Player {
void play();
void play();
}
Loading

0 comments on commit 1f71843

Please sign in to comment.