svn commit: r766 - in logback/trunk/logback-core/src/main/java/ch/qos/logback/core: helpers html rolling

Author: seb Date: Tue Oct 24 20:50:34 2006 New Revision: 766 Added: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/CssBuilder.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/DefaultCssBuilder.java - copied, changed from r764, /logback/trunk/logback-core/src/main/java/ch/qos/logback/core/helpers/DefaultCssBuilder.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/UrlCssBuilder.java Removed: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/helpers/DefaultCssBuilder.java Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingPolicyBase.java Log: -- refactoring of css builder - started work on merging activeFileName and FileName Added: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/CssBuilder.java ============================================================================== --- (empty file) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/CssBuilder.java Tue Oct 24 20:50:34 2006 @@ -0,0 +1,7 @@ +package ch.qos.logback.core.html; + +public interface CssBuilder { + + public void addCss(StringBuffer sbuf); + +} Copied: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/DefaultCssBuilder.java (from r764, /logback/trunk/logback-core/src/main/java/ch/qos/logback/core/helpers/DefaultCssBuilder.java) ============================================================================== --- /logback/trunk/logback-core/src/main/java/ch/qos/logback/core/helpers/DefaultCssBuilder.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/DefaultCssBuilder.java Tue Oct 24 20:50:34 2006 @@ -7,75 +7,65 @@ * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation. */ -package ch.qos.logback.core.helpers; +package ch.qos.logback.core.html; import static ch.qos.logback.core.Layout.LINE_SEP; /** - * This class helps the HTMLLayout build the CSS link. - * It either provides the HTMLLayout with a default css file, - * or builds the link to an external, user-specified, file. - * + * This class helps the HTMLLayout build the CSS link. It either provides the + * HTMLLayout with a default css file, or builds the link to an external, + * user-specified, file. + * * @author Sébastien Pennec */ -public class DefaultCssBuilder { +public class DefaultCssBuilder implements CssBuilder { - String url; - - public DefaultCssBuilder() { + public DefaultCssBuilder() { } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public void addExternalCSS(StringBuffer sbuf) { - sbuf.append("<LINK REL=StyleSheet HREF=\""); - sbuf.append(url); - sbuf.append("\" TITLE=\"Basic\" />"); - } - - public static void addDefaultCSS(StringBuffer buf) { - buf.append("<STYLE type=\"text/css\">"); - buf.append(LINE_SEP); - buf.append("table { margin-left: 2em; margin-right: 2em; border-left: 2px solid #AAA; }"); - buf.append(LINE_SEP); - - buf.append("TR.even { background: #FFFFFF; }"); - buf.append(LINE_SEP); - - buf.append("TR.odd { background: #EAEAEA; }"); - buf.append(LINE_SEP); - - buf.append("TR.warn TD.Level, TR.error TD.Level, TR.fatal TD.Level {font-weight: bold; color: #FF4040 }"); - buf.append(LINE_SEP); - - buf.append("TD { padding-right: 1ex; padding-left: 1ex; border-right: 2px solid #AAA; }"); - buf.append(LINE_SEP); - - buf.append("TD.Time, TD.Date { text-align: right; font-family: courier, monospace; font-size: smaller; }"); - buf.append(LINE_SEP); - - buf.append("TD.Thread { text-align: left; }"); - buf.append(LINE_SEP); - - buf.append("TD.Level { text-align: right; }"); - buf.append(LINE_SEP); - - buf.append("TD.Logger { text-align: left; }"); - buf.append(LINE_SEP); - - buf.append("TR.header { background: #596ED5; color: #FFF; font-weight: bold; font-size: larger; }"); - buf.append(LINE_SEP); - buf.append("TD.Exception { background: #A2AEE8; font-family: courier, monospace;}"); - buf.append(LINE_SEP); + public void addCss(StringBuffer sbuf) { + sbuf.append("<STYLE type=\"text/css\">"); + sbuf.append(LINE_SEP); + sbuf + .append("table { margin-left: 2em; margin-right: 2em; border-left: 2px solid #AAA; }"); + sbuf.append(LINE_SEP); + + sbuf.append("TR.even { background: #FFFFFF; }"); + sbuf.append(LINE_SEP); + + sbuf.append("TR.odd { background: #EAEAEA; }"); + sbuf.append(LINE_SEP); + + sbuf + .append("TR.warn TD.Level, TR.error TD.Level, TR.fatal TD.Level {font-weight: bold; color: #FF4040 }"); + sbuf.append(LINE_SEP); + + sbuf + .append("TD { padding-right: 1ex; padding-left: 1ex; border-right: 2px solid #AAA; }"); + sbuf.append(LINE_SEP); + + sbuf + .append("TD.Time, TD.Date { text-align: right; font-family: courier, monospace; font-size: smaller; }"); + sbuf.append(LINE_SEP); + + sbuf.append("TD.Thread { text-align: left; }"); + sbuf.append(LINE_SEP); + + sbuf.append("TD.Level { text-align: right; }"); + sbuf.append(LINE_SEP); + + sbuf.append("TD.Logger { text-align: left; }"); + sbuf.append(LINE_SEP); + + sbuf + .append("TR.header { background: #596ED5; color: #FFF; font-weight: bold; font-size: larger; }"); + sbuf.append(LINE_SEP); + + sbuf + .append("TD.Exception { background: #A2AEE8; font-family: courier, monospace;}"); + sbuf.append(LINE_SEP); - buf.append("</STYLE>"); - buf.append(LINE_SEP); + sbuf.append("</STYLE>"); + sbuf.append(LINE_SEP); } } Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java Tue Oct 24 20:50:34 2006 @@ -3,7 +3,6 @@ import java.util.Map; import ch.qos.logback.core.LayoutBase; -import ch.qos.logback.core.helpers.CssBuilder; import ch.qos.logback.core.pattern.Converter; import ch.qos.logback.core.pattern.DynamicConverter; import ch.qos.logback.core.pattern.parser.Node; @@ -23,6 +22,8 @@ protected String title = "Logback Log Messages"; + //It is the responsability of derived classes to set + //this variable in their constructor to a default value. protected CssBuilder cssBuilder; protected IThrowableRenderer throwableRenderer; //no more initialization ?????? @@ -131,11 +132,13 @@ sbuf.append(title); sbuf.append("</title>"); sbuf.append(LINE_SEP); - if (cssBuilder == null) { - CssBuilder.addDefaultCSS(sbuf); - } else { - cssBuilder.addExternalCSS(sbuf); - } + + cssBuilder.addCss(sbuf); +// if (cssBuilder == null) { +// DefaultCssBuilder.addDefaultCSS(sbuf); +// } else { +// cssBuilder.addExternalCSS(sbuf); +// } sbuf.append(LINE_SEP); sbuf.append("</head>"); sbuf.append(LINE_SEP); Added: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/UrlCssBuilder.java ============================================================================== --- (empty file) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/UrlCssBuilder.java Tue Oct 24 20:50:34 2006 @@ -0,0 +1,40 @@ +/** + * Logback: the reliable, generic, fast and flexible logging framework. + * + * Copyright (C) 1999-2006, QOS.ch + * + * This library is free software, you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation. + */ +package ch.qos.logback.core.html; + + +/** + * This class helps the HTMLLayout build the CSS link. + * It either provides the HTMLLayout with a default css file, + * or builds the link to an external, user-specified, file. + * + * @author Sébastien Pennec + */ +public class UrlCssBuilder implements CssBuilder { + + String url = "http://logback.qos.ch/css/classic.css"; + + public UrlCssBuilder() { + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public void addCss(StringBuffer sbuf) { + sbuf.append("<LINK REL=StyleSheet HREF=\""); + sbuf.append(url); + sbuf.append("\" TITLE=\"Basic\" />"); + } +} Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingFileAppender.java Tue Oct 24 20:50:34 2006 @@ -83,8 +83,12 @@ // the activeFile variable is used by the triggeringPolicy.isTriggeringEvent method activeFileCache = new File(afn); addInfo("Active log file name: "+afn); - setFile(afn); + // The local setFile throws an exception, so we use the parent's version. + // This is to prevent the user from configuring both the RollingFileAppender with + // an activeFileName _and_ the FileAppender's file attribute, causing confusion + // on the attributes' uses. + super.setFile(afn); super.start(); } else { addWarn("No RollingPolicy was set for the RollingFileAppender named "+ getName()); @@ -185,4 +189,10 @@ rollingPolicy = (RollingPolicy) policy; } } + + @Override + public void setFile(String filename) { + throw new UnsupportedOperationException("With RollingFileAppender please use activeFileName " + + "option instead of File"); + } } Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingPolicyBase.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingPolicyBase.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/RollingPolicyBase.java Tue Oct 24 20:50:34 2006 @@ -26,6 +26,11 @@ protected int compressionMode = Compress.NONE; protected FileNamePattern fileNamePattern; protected String fileNamePatternStr; + /* + * It would have been nice to merge 'activeFileName' into filename of + * FileAppender. Unfortunately, a child component must be self contained + * as it is started before its parent. + */ protected String activeFileName = null; private boolean started;
participants (1)
-
noreply.seb@qos.ch