<div dir="ltr"><div>Absolutely...</div>
<div>Here is the config file.</div>
<div>&nbsp;</div>
<div>&lt;configuration&gt;</div>
<div>&nbsp; &lt;consolePlugin /&gt;</div>
<div><br>&nbsp;&nbsp; &lt;appender name=&quot;DB&quot; class=&quot;ch.qos.logback.classic.db.DBAppender&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;connectionSource class=&quot;ch.qos.logback.core.db.DriverManagerConnectionSource&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;driverClass&gt;com.mysql.jdbc.Driver&lt;/driverClass&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;jdbc:mysql://localhost:3306/Greg&lt;/url&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;user&gt;greg&lt;/user&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;password&gt;greg&lt;/password&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/connectionSource&gt;<br>&nbsp; &lt;/appender&gt;</div>
<div><br>&nbsp; &lt;appender name=&quot;HSQLDB&quot; class=&quot;ch.qos.logback.classic.db.DBAppender&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;connectionSource class=&quot;ch.qos.logback.core.db.DriverManagerConnectionSource&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;driverClass&gt;org.hsqldb.jdbcDriver&lt;/driverClass&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;jdbc:hsqldb:hsql://localhost/&lt;/url&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;user&gt;sa&lt;/user&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;password&gt;&lt;/password&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/connectionSource&gt;<br>&nbsp; &lt;/appender&gt;</div>
<div><br>&nbsp; &lt;appender name=&quot;STDOUT&quot;<br>&nbsp;&nbsp;&nbsp; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;layout class=&quot;ch.qos.logback.classic.PatternLayout&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pattern&gt;%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} [%file : %line] - %msg%n&lt;/Pattern&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/layout&gt;<br>&nbsp; &lt;/appender&gt;</div>
<div><br>&lt;appender name=&quot;FILE&quot; class=&quot;ch.qos.logback.core.FileAppender&quot;&gt;<br>&nbsp;&lt;layout class=&quot;ch.qos.logback.classic.html.HTMLLayout&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&lt;pattern&gt;%date %relative%thread%mdc%level%logger%msg&lt;/pattern&gt;<br>
&nbsp;&nbsp;&lt;/layout&gt;<br>&nbsp;&nbsp;&lt;File&gt;C:/tools/test.html&lt;/File&gt;<br>&lt;/appender&gt;</div>
<div>&nbsp;&nbsp;&nbsp; &lt;!--<br>&lt;appender name=&quot;FLAT&quot; class=&quot;ch.qos.logback.core.FileAppender&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;File&gt;H:/tools/testFile.log&lt;/File&gt;<br>&nbsp;&nbsp;&nbsp; &lt;layout class=&quot;ch.qos.logback.classic.PatternLayout&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pattern&gt;%date %relative%thread%mdc%level%logger%msg%n&lt;/Pattern&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/layout&gt;<br>&nbsp; &lt;/appender&gt;</div>
<div>&nbsp;&nbsp; --&gt;<br>&lt;!--<br>&nbsp; &lt;appender name=&quot;FILE&quot; class=&quot;ch.qos.logback.core.FileAppender&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;File&gt;testFile.log&lt;/File&gt;<br>&nbsp;&nbsp;&nbsp; &lt;Append&gt;true&lt;/Append&gt;</div>
<div>&nbsp;&nbsp;&nbsp; &lt;layout class=&quot;ch.qos.logback.classic.PatternLayout&quot;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pattern&gt;%date [%thread] %-5level %logger{35} - %msg%n&lt;/Pattern&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/layout&gt;<br>&nbsp; &lt;/appender&gt;<br>&nbsp; --&gt;</div>

<div>&nbsp; &lt;root&gt;<br>&nbsp;&nbsp;&nbsp; &lt;level value=&quot;debug&quot; /&gt;<br>&nbsp;&nbsp; &lt;appender-ref ref=&quot;DB&quot; /&gt;<br>&nbsp; &lt;/root&gt;<br>&lt;/configuration&gt;</div>
<div>&nbsp;</div>
<div>Right now as you can see is set to write to a DB which is a MySQl database.</div>
<div>Here is the Java code I&#39;m using to test this.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>public class DBConnector {<br>&nbsp;Logger logger = null;</div>
<div>&nbsp;public static void main(String[] args) {<br>&nbsp;&nbsp;DBConnector dbc&nbsp; = new DBConnector();<br>&nbsp;&nbsp;dbc.doSomething();<br>&nbsp;}</div>
<div>&nbsp;public void doSomething(){<br>&nbsp;&nbsp;logger = LoggerFactory.getLogger(DBConnector.class);<br>&nbsp;&nbsp;readConfig();<br>&nbsp;&nbsp;&nbsp;PerformanceBenchmark();<br>&nbsp;}</div>
<div>&nbsp;&nbsp;&nbsp; public void PerformanceBenchmark()<br>&nbsp;{</div>
<div>&nbsp;&nbsp;// Get current time<br>&nbsp;&nbsp;&nbsp;&nbsp; long start = System.currentTimeMillis();</div>
<div>&nbsp;&nbsp;for (int i = 0; i &lt; 10000; ++i)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;logger.debug(&quot;INFO Entering application.&quot;);<br>&nbsp;&nbsp;&nbsp;<a href="http://logger.info">logger.info</a>(&quot;INFO Entering application.&quot;);<br>&nbsp;&nbsp;}</div>
<div>&nbsp;&nbsp;&nbsp;Foo f = new Foo();<br>&nbsp;&nbsp;&nbsp;f.doIt();<br>&nbsp;&nbsp;&nbsp;<a href="http://logger.info">logger.info</a>(&quot;Exiting Application&quot;);</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;// Get elapsed time in milliseconds<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(&quot;Testing exception&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception e)<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long elapsedTimeMillis = System.currentTimeMillis()-start;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://logger.info">logger.info</a>(&quot;Time in ms is: &quot; + elapsedTimeMillis, e);<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println(elapsedTimeMillis);<br>&nbsp;}</div>
<div>&nbsp;private void readConfig()<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();<br>&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;JoranConfigurator configurator = new JoranConfigurator();<br>&nbsp;&nbsp;&nbsp;lc.shutdownAndReset();<br>
&nbsp;&nbsp;&nbsp;configurator.setContext(lc);<br>&nbsp;&nbsp;&nbsp;configurator.doConfigure(&quot;src/DBConnectorXML.xml&quot;);<br>&nbsp;&nbsp;} catch (JoranException je) {<br>&nbsp;&nbsp;&nbsp;StatusPrinter.print(lc);<br>&nbsp;&nbsp;}<br>&nbsp;}<br>}</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>public class Foo {<br>&nbsp; static final Logger logger = LoggerFactory.getLogger(Foo.class);</div>
<div>&nbsp; public void doIt() {<br>&nbsp;&nbsp;&nbsp; logger.debug(&quot;Got in here!&quot;);<br>&nbsp; }<br>}<br><br>As you can see I&#39;m just playing aroung with it.....</div>
<div>The code is complete... meaning&nbsp;you can compile it and run it.</div>
<div>See&nbsp;if you can reproduce the problem..... </div>
<div>Thanks</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><br>&nbsp;</div>
<div class="gmail_quote">On Mon, Sep 22, 2008 at 2:11 PM, Ceki Gulcu <span dir="ltr">&lt;listid@qos.ch&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br><br>Interesting. Could you please share your config file and code?<br>
<div>
<div></div>
<div class="Wj3C7c"><br>Greg Flex wrote:<br>&gt; Hi all,<br>&gt; I&#39;m running some benchmarking and I&#39;ve noticed that when calling logger.xxx<br>&gt; in a loop (10,000 iterations) only about 3964 are written. I&#39;m testing<br>
&gt; this with both<br>&gt; MySQL and HSQLDB databases.<br>&gt; Can someone please let me know what&#39;s seems to be a problem?<br>&gt; Do I need to configure this in some config file?<br>&gt; How many times I can write at once to a database?<br>
&gt; Thanks<br>&gt;<br>&gt;<br><br><br></div></div><font color="#888888">--<br>Ceki Gülcü<br>Logback: The reliable, generic, fast and flexible logging framework for Java.<br><a href="http://logback.qos.ch/" target="_blank">http://logback.qos.ch</a><br>
_______________________________________________<br>Logback-user mailing list<br>Logback-user@qos.ch<br><a href="http://qos.ch/mailman/listinfo/logback-user" target="_blank">http://qos.ch/mailman/listinfo/logback-user</a><br>
</font></blockquote></div><br></div>