From 05c1d3a6f9403b21e101a2f61a152d17d2d6b280 Mon Sep 17 00:00:00 2001 From: eaceaser Date: Wed, 29 Dec 2010 12:09:12 -0800 Subject: [PATCH 1/3] use finer grained file locks --- src/main/scala/net/lag/logging/FileHandler.scala | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/scala/net/lag/logging/FileHandler.scala b/src/main/scala/net/lag/logging/FileHandler.scala index a03fcf9..b2c5810 100644 --- a/src/main/scala/net/lag/logging/FileHandler.scala +++ b/src/main/scala/net/lag/logging/FileHandler.scala @@ -135,7 +135,7 @@ class FileHandler(val filename: String, val policy: Policy, formatter: Formatter } } - def roll() = { + def roll() = synchronized { stream.close() val n = filename.lastIndexOf('.') val newFilename = if (n > 0) { @@ -148,13 +148,16 @@ class FileHandler(val filename: String, val policy: Policy, formatter: Formatter removeOldFiles() } - def publish(record: javalog.LogRecord) = synchronized { + def publish(record: javalog.LogRecord) = { try { if (System.currentTimeMillis > nextRollTime) { roll } - stream.write(getFormatter.format(record)) - stream.flush + val formattedLine = getFormatter.format(record) + synchronized { + stream.write(formattedLine) + stream.flush + } } catch { case e => System.err.println(Formatter.formatStackTrace(e, 30).mkString("\n")) From 414a98bd2db83cfa28bb08b339d01d7c5dab6ae1 Mon Sep 17 00:00:00 2001 From: eaceaser Date: Wed, 29 Dec 2010 12:12:50 -0800 Subject: [PATCH 2/3] bump the snapshot version --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 7335f06..cbb4a2f 100644 --- a/project/build.properties +++ b/project/build.properties @@ -3,7 +3,7 @@ project.organization=net.lag project.name=configgy sbt.version=0.7.4 -project.version=1.6.9-SNAPSHOT +project.version=1.6.10-SNAPSHOT def.scala.version=2.7.7 build.scala.versions=2.7.7 project.initialize=false From 57e63ee64e59a69f63debb440e43c12c85411b33 Mon Sep 17 00:00:00 2001 From: eaceaser Date: Wed, 5 Jan 2011 21:40:51 -0800 Subject: [PATCH 3/3] make the roll check synchronized too :( --- src/main/scala/net/lag/logging/FileHandler.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/scala/net/lag/logging/FileHandler.scala b/src/main/scala/net/lag/logging/FileHandler.scala index b2c5810..3dfd981 100644 --- a/src/main/scala/net/lag/logging/FileHandler.scala +++ b/src/main/scala/net/lag/logging/FileHandler.scala @@ -150,8 +150,10 @@ class FileHandler(val filename: String, val policy: Policy, formatter: Formatter def publish(record: javalog.LogRecord) = { try { - if (System.currentTimeMillis > nextRollTime) { - roll + synchronized { + if (System.currentTimeMillis > nextRollTime) { + roll + } } val formattedLine = getFormatter.format(record) synchronized {