Skip to content

Commit

Permalink
Add pretty colours to console log levels
Browse files Browse the repository at this point in the history
  • Loading branch information
md-5 committed Jan 29, 2020
1 parent 2235a32 commit bf673c5
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 5 deletions.
6 changes: 2 additions & 4 deletions log/src/main/java/net/md_5/bungee/log/BungeeLogger.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
Expand All @@ -12,7 +11,6 @@
public class BungeeLogger extends Logger
{

private final Formatter formatter = new ConciseFormatter();
private final LogDispatcher dispatcher = new LogDispatcher( this );

@SuppressWarnings(
Expand All @@ -28,12 +26,12 @@ public BungeeLogger(String loggerName, String filePattern, ConsoleReader reader)
try
{
FileHandler fileHandler = new FileHandler( filePattern, 1 << 24, 8, true );
fileHandler.setFormatter( formatter );
fileHandler.setFormatter( new ConciseFormatter( false ) );
addHandler( fileHandler );

ColouredWriter consoleHandler = new ColouredWriter( reader );
consoleHandler.setLevel( Level.INFO );
consoleHandler.setFormatter( formatter );
consoleHandler.setFormatter( new ConciseFormatter( true ) );
addHandler( consoleHandler );
} catch ( IOException ex )
{
Expand Down
34 changes: 33 additions & 1 deletion log/src/main/java/net/md_5/bungee/log/ConciseFormatter.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import lombok.RequiredArgsConstructor;
import net.md_5.bungee.api.ChatColor;

@RequiredArgsConstructor
public class ConciseFormatter extends Formatter
{

private final DateFormat date = new SimpleDateFormat( System.getProperty( "net.md_5.bungee.log-date-format", "HH:mm:ss" ) );
private final boolean coloured;

@Override
@SuppressWarnings("ThrowableResultIgnored")
Expand All @@ -20,7 +25,7 @@ public String format(LogRecord record)

formatted.append( date.format( record.getMillis() ) );
formatted.append( " [" );
formatted.append( record.getLevel().getLocalizedName() );
appendLevel( formatted, record.getLevel() );
formatted.append( "] " );
formatted.append( formatMessage( record ) );
formatted.append( '\n' );
Expand All @@ -34,4 +39,31 @@ public String format(LogRecord record)

return formatted.toString();
}

private void appendLevel(StringBuilder builder, Level level)
{
if ( !coloured )
{
builder.append( level.getLocalizedName() );
return;
}

ChatColor color;

if ( level == Level.INFO )
{
color = ChatColor.BLUE;
} else if ( level == Level.WARNING )
{
color = ChatColor.YELLOW;
} else if ( level == Level.SEVERE )
{
color = ChatColor.RED;
} else
{
color = ChatColor.AQUA;
}

builder.append( color ).append( level.getLocalizedName() ).append( ChatColor.RESET );
}
}

0 comments on commit bf673c5

Please sign in to comment.