From ce1adf9955ad053d2b69105cb992966ef6ccb236 Mon Sep 17 00:00:00 2001 From: orbiter Date: Mon, 15 Jun 2009 21:19:54 +0000 Subject: [PATCH] serialized all logging using concurrency: high-performance search query situations as seen in yacy-metager integration showed deadlock situation caused by synchronization effects inside of sun.java code. It appears that the logger is not completely safe against deadlock situations in concurrent calls of the logger. One possible solution would be a outside-synchronization with 'synchronized' statements, but that would further apply blocking on all high-efficient methods that call the logger. It is much better to do a non-blocking hand-over of logging lines and work off log entries with a concurrent log writer. This also disconnects IO operations from logging, which can also cause IO operation when a log is written to a file. This commit not only moves the logger from kelondro to yacy.logging, it also inserts the concurrency methods to realize non-blocking logging. git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6078 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/BlacklistCleaner_p.java | 2 +- htroot/Blacklist_p.java | 2 +- htroot/BlogComments.java | 2 +- htroot/Bookmarks.java | 2 +- htroot/CrawlResults.java | 2 +- htroot/ProxyIndexingMonitor_p.java | 2 +- htroot/ViewImage.java | 2 +- htroot/yacy/crawlReceipt.java | 2 +- htroot/yacy/message.java | 2 +- htroot/yacy/transferRWI.java | 2 +- htroot/yacysearch.java | 2 +- .../de/anomic/crawler/AbstractImporter.java | 2 +- source/de/anomic/crawler/Balancer.java | 2 +- source/de/anomic/crawler/CrawlQueues.java | 2 +- source/de/anomic/crawler/CrawlStacker.java | 2 +- .../de/anomic/crawler/CrawlSwitchboard.java | 2 +- source/de/anomic/crawler/FTPLoader.java | 2 +- source/de/anomic/crawler/HTTPLoader.java | 2 +- source/de/anomic/crawler/ImporterManager.java | 2 +- source/de/anomic/crawler/IndexingStack.java | 2 +- source/de/anomic/crawler/NoticedURL.java | 2 +- source/de/anomic/crawler/ProtocolLoader.java | 2 +- .../de/anomic/crawler/ResourceObserver.java | 2 +- source/de/anomic/crawler/ResultURLs.java | 2 +- source/de/anomic/crawler/RobotsTxt.java | 2 +- source/de/anomic/data/SitemapParser.java | 2 +- source/de/anomic/data/URLFetcherStack.java | 2 +- source/de/anomic/data/blogBoard.java | 2 +- source/de/anomic/data/blogBoardComments.java | 2 +- source/de/anomic/data/bookmarksDB.java | 2 +- source/de/anomic/data/translator.java | 2 +- .../http/AcceptEverythingTrustManager.java | 2 +- source/de/anomic/http/HttpConnectionInfo.java | 2 +- source/de/anomic/http/httpClient.java | 2 +- source/de/anomic/http/httpResponseHeader.java | 2 +- source/de/anomic/http/httpTemplate.java | 2 +- source/de/anomic/http/httpd.java | 2 +- source/de/anomic/http/httpdFileHandler.java | 2 +- source/de/anomic/http/httpdProxyHandler.java | 2 +- source/de/anomic/icap/icapd.java | 2 +- source/de/anomic/kelondro/blob/BLOBArray.java | 2 +- .../kelondro/blob/BLOBHeapModifier.java | 2 +- .../de/anomic/kelondro/blob/HeapReader.java | 2 +- .../de/anomic/kelondro/blob/HeapWriter.java | 2 +- source/de/anomic/kelondro/index/Row.java | 2 +- .../anomic/kelondro/index/RowCollection.java | 2 +- source/de/anomic/kelondro/index/RowSet.java | 2 +- .../de/anomic/kelondro/order/Base64Order.java | 2 +- source/de/anomic/kelondro/order/Digest.java | 2 +- .../kelondro/table/AbstractRecords.java | 2 +- source/de/anomic/kelondro/table/EcoTable.java | 2 +- .../anomic/kelondro/table/FlexWidthArray.java | 2 +- .../de/anomic/kelondro/table/SplitTable.java | 2 +- source/de/anomic/kelondro/table/Stack.java | 2 +- source/de/anomic/kelondro/table/Tree.java | 2 +- .../de/anomic/kelondro/text/IODispatcher.java | 2 +- .../kelondro/text/MetadataRepository.java | 2 +- .../text/ReferenceContainerArray.java | 2 +- .../text/ReferenceContainerCache.java | 2 +- source/de/anomic/kelondro/text/Segment.java | 2 +- source/de/anomic/kelondro/util/FileUtils.java | 1 + source/de/anomic/kelondro/util/Log.java | 217 ---------- .../anomic/kelondro/util/MemoryControl.java | 1 + .../identification/LanguageStatistics.java | 2 +- .../LanguageStatisticsHolder.java | 2 +- source/de/anomic/net/UPnP.java | 2 +- .../anomic/plasma/parser/AbstractParser.java | 2 +- source/de/anomic/plasma/parser/Parser.java | 2 +- .../anomic/plasma/parser/odt/odtParser.java | 2 +- .../sevenzip/SZParserExtractCallback.java | 2 +- source/de/anomic/plasma/plasmaHTCache.java | 2 +- source/de/anomic/plasma/plasmaParser.java | 2 +- .../de/anomic/plasma/plasmaParserConfig.java | 2 +- .../plasma/plasmaRankingDistribution.java | 2 +- .../de/anomic/plasma/plasmaSearchEvent.java | 2 +- .../de/anomic/plasma/plasmaSearchImages.java | 2 +- .../de/anomic/plasma/plasmaSnippetCache.java | 2 +- .../de/anomic/plasma/plasmaSwitchboard.java | 2 +- .../de/anomic/plasma/plasmaWebStructure.java | 2 +- .../server/serverAbstractBlockingThread.java | 2 +- .../server/serverAbstractBusyThread.java | 2 +- .../anomic/server/serverAbstractSwitch.java | 2 +- .../anomic/server/serverAbstractThread.java | 2 +- source/de/anomic/server/serverCore.java | 2 +- .../server/serverInstantBlockingThread.java | 2 +- .../server/serverInstantBusyThread.java | 2 +- source/de/anomic/server/serverProcessor.java | 2 +- source/de/anomic/server/serverSwitch.java | 2 +- .../server/serverSwitchAbstractAction.java | 2 +- .../de/anomic/server/serverSwitchAction.java | 2 +- source/de/anomic/server/serverSystem.java | 2 +- source/de/anomic/server/serverThread.java | 2 +- source/de/anomic/tools/DidYouMean.java | 2 +- source/de/anomic/tools/consoleInterface.java | 2 +- source/de/anomic/tools/diskUsage.java | 2 +- source/de/anomic/tools/gzip.java | 2 +- source/de/anomic/tools/mediawikiIndex.java | 2 +- source/de/anomic/tools/tarTools.java | 2 +- .../anomic/urlRedirector/urlRedirectord.java | 2 +- source/de/anomic/xml/RSSReader.java | 2 +- .../xml/opensearchdescriptionReader.java | 2 +- source/de/anomic/yacy/dht/Dispatcher.java | 2 +- source/de/anomic/yacy/dht/PeerSelection.java | 2 +- source/de/anomic/yacy/dht/Transmission.java | 2 +- source/de/anomic/yacy/logging/Log.java | 395 ++++++++++++++++++ .../yacy/logging/SimpleLogFormatter.java | 1 - source/de/anomic/yacy/yacyCore.java | 2 +- source/de/anomic/yacy/yacyPeerActions.java | 2 +- source/de/anomic/yacy/yacyRelease.java | 2 +- source/de/anomic/yacy/yacySearch.java | 2 +- source/de/anomic/yacy/yacySeedDB.java | 2 +- source/de/anomic/yacy/yacyVersion.java | 2 +- source/de/anomic/ymage/ymageOSM.java | 2 +- source/migration.java | 2 +- source/yacy.java | 2 +- 115 files changed, 507 insertions(+), 328 deletions(-) delete mode 100644 source/de/anomic/kelondro/util/Log.java create mode 100644 source/de/anomic/yacy/logging/Log.java diff --git a/htroot/BlacklistCleaner_p.java b/htroot/BlacklistCleaner_p.java index 5cfae65ae..0dbea480a 100644 --- a/htroot/BlacklistCleaner_p.java +++ b/htroot/BlacklistCleaner_p.java @@ -50,10 +50,10 @@ import de.anomic.data.Blacklist; import de.anomic.data.DefaultBlacklist; import de.anomic.data.listManager; import de.anomic.http.httpRequestHeader; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; +import de.anomic.yacy.logging.Log; public class BlacklistCleaner_p { diff --git a/htroot/Blacklist_p.java b/htroot/Blacklist_p.java index 622905bfb..da678dacc 100644 --- a/htroot/Blacklist_p.java +++ b/htroot/Blacklist_p.java @@ -43,12 +43,12 @@ import de.anomic.data.AbstractBlacklist; import de.anomic.data.Blacklist; import de.anomic.data.listManager; import de.anomic.http.httpRequestHeader; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSearchEvent; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class Blacklist_p { private final static String EDIT = "edit_"; diff --git a/htroot/BlogComments.java b/htroot/BlogComments.java index 6e71f9dfd..dbe19020b 100644 --- a/htroot/BlogComments.java +++ b/htroot/BlogComments.java @@ -41,12 +41,12 @@ import de.anomic.data.messageBoard; import de.anomic.data.userDB; import de.anomic.data.blogBoard.BlogEntry; import de.anomic.http.httpRequestHeader; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.yacy.yacyCore; +import de.anomic.yacy.logging.Log; public class BlogComments { diff --git a/htroot/Bookmarks.java b/htroot/Bookmarks.java index d36afa0e9..9907adecd 100644 --- a/htroot/Bookmarks.java +++ b/htroot/Bookmarks.java @@ -43,7 +43,6 @@ import de.anomic.data.bookmarksDB.Tag; import de.anomic.http.httpRequestHeader; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParserDocument; import de.anomic.plasma.plasmaSnippetCache; import de.anomic.plasma.plasmaSwitchboard; @@ -52,6 +51,7 @@ import de.anomic.server.serverSwitch; import de.anomic.yacy.yacyNewsPool; import de.anomic.yacy.yacyNewsRecord; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class Bookmarks { diff --git a/htroot/CrawlResults.java b/htroot/CrawlResults.java index 46c892173..49ce6647b 100644 --- a/htroot/CrawlResults.java +++ b/htroot/CrawlResults.java @@ -32,13 +32,13 @@ import java.util.Locale; import de.anomic.http.httpRequestHeader; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.tools.nxTools; import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class CrawlResults { diff --git a/htroot/ProxyIndexingMonitor_p.java b/htroot/ProxyIndexingMonitor_p.java index cba9b4bb4..0b9243f86 100644 --- a/htroot/ProxyIndexingMonitor_p.java +++ b/htroot/ProxyIndexingMonitor_p.java @@ -31,12 +31,12 @@ import java.io.File; import java.io.IOException; import de.anomic.http.httpRequestHeader; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaHTCache; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboardConstants; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; +import de.anomic.yacy.logging.Log; public class ProxyIndexingMonitor_p { diff --git a/htroot/ViewImage.java b/htroot/ViewImage.java index 2a3d44923..66b586b8d 100644 --- a/htroot/ViewImage.java +++ b/htroot/ViewImage.java @@ -30,13 +30,13 @@ import java.net.MalformedURLException; import java.util.HashMap; import de.anomic.http.httpRequestHeader; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaSnippetCache; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; import de.anomic.ymage.ymageImageParser; public class ViewImage { diff --git a/htroot/yacy/crawlReceipt.java b/htroot/yacy/crawlReceipt.java index 2f125889a..61bd02900 100644 --- a/htroot/yacy/crawlReceipt.java +++ b/htroot/yacy/crawlReceipt.java @@ -32,13 +32,13 @@ import java.io.IOException; import de.anomic.crawler.ZURL; import de.anomic.http.httpRequestHeader; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.tools.crypt; import de.anomic.yacy.yacyNetwork; import de.anomic.yacy.yacySeed; +import de.anomic.yacy.logging.Log; public final class crawlReceipt { diff --git a/htroot/yacy/message.java b/htroot/yacy/message.java index 5d832abf4..71176c12f 100644 --- a/htroot/yacy/message.java +++ b/htroot/yacy/message.java @@ -36,7 +36,6 @@ import java.util.Date; import de.anomic.data.messageBoard; import de.anomic.http.httpRequestHeader; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; @@ -45,6 +44,7 @@ import de.anomic.tools.crypt; import de.anomic.yacy.yacyCore; import de.anomic.yacy.yacyNetwork; import de.anomic.yacy.yacySeed; +import de.anomic.yacy.logging.Log; public final class message { diff --git a/htroot/yacy/transferRWI.java b/htroot/yacy/transferRWI.java index 30575f56e..8817222f3 100644 --- a/htroot/yacy/transferRWI.java +++ b/htroot/yacy/transferRWI.java @@ -37,7 +37,6 @@ import de.anomic.data.Blacklist; import de.anomic.http.httpRequestHeader; import de.anomic.kelondro.text.referencePrototype.WordReferenceRow; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboardConstants; import de.anomic.server.serverCore; @@ -48,6 +47,7 @@ import de.anomic.yacy.yacyCore; import de.anomic.yacy.yacyNetwork; import de.anomic.yacy.yacySeed; import de.anomic.yacy.dht.FlatWordPartitionScheme; +import de.anomic.yacy.logging.Log; public final class transferRWI { diff --git a/htroot/yacysearch.java b/htroot/yacysearch.java index 0fbf119aa..a9d013dc8 100644 --- a/htroot/yacysearch.java +++ b/htroot/yacysearch.java @@ -38,7 +38,6 @@ import de.anomic.kelondro.order.Bitfield; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.util.MemoryControl; import de.anomic.kelondro.util.SetTools; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParserDocument; import de.anomic.plasma.plasmaProfiling; import de.anomic.plasma.plasmaSearchEvent; @@ -61,6 +60,7 @@ import de.anomic.xml.RSSFeed; import de.anomic.yacy.yacyNewsPool; import de.anomic.yacy.yacyNewsRecord; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class yacysearch { diff --git a/source/de/anomic/crawler/AbstractImporter.java b/source/de/anomic/crawler/AbstractImporter.java index fdaeab07a..9f857daa8 100644 --- a/source/de/anomic/crawler/AbstractImporter.java +++ b/source/de/anomic/crawler/AbstractImporter.java @@ -1,6 +1,6 @@ package de.anomic.crawler; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public abstract class AbstractImporter extends Thread implements Importer { diff --git a/source/de/anomic/crawler/Balancer.java b/source/de/anomic/crawler/Balancer.java index 54fd8f5ca..651abfcd4 100644 --- a/source/de/anomic/crawler/Balancer.java +++ b/source/de/anomic/crawler/Balancer.java @@ -37,7 +37,7 @@ import de.anomic.kelondro.index.Row; import de.anomic.kelondro.index.ObjectIndex; import de.anomic.kelondro.order.CloneableIterator; import de.anomic.kelondro.table.EcoTable; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class Balancer { diff --git a/source/de/anomic/crawler/CrawlQueues.java b/source/de/anomic/crawler/CrawlQueues.java index 50ca29d6c..25ec451c1 100644 --- a/source/de/anomic/crawler/CrawlQueues.java +++ b/source/de/anomic/crawler/CrawlQueues.java @@ -41,7 +41,6 @@ import de.anomic.http.httpClient; import de.anomic.kelondro.table.FlexWidthArray; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParser; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboardConstants; @@ -52,6 +51,7 @@ import de.anomic.yacy.yacyClient; import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacyURL; import de.anomic.yacy.dht.PeerSelection; +import de.anomic.yacy.logging.Log; public class CrawlQueues { diff --git a/source/de/anomic/crawler/CrawlStacker.java b/source/de/anomic/crawler/CrawlStacker.java index af163ac38..6b50db1ab 100644 --- a/source/de/anomic/crawler/CrawlStacker.java +++ b/source/de/anomic/crawler/CrawlStacker.java @@ -34,12 +34,12 @@ import java.util.Date; import de.anomic.data.Blacklist; import de.anomic.kelondro.text.Segment; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverDomains; import de.anomic.server.serverProcessor; import de.anomic.yacy.yacySeedDB; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class CrawlStacker { diff --git a/source/de/anomic/crawler/CrawlSwitchboard.java b/source/de/anomic/crawler/CrawlSwitchboard.java index dfd938059..cca281cf9 100644 --- a/source/de/anomic/crawler/CrawlSwitchboard.java +++ b/source/de/anomic/crawler/CrawlSwitchboard.java @@ -33,9 +33,9 @@ import java.util.Iterator; import de.anomic.crawler.CrawlProfile.entry; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.parser.Word; import de.anomic.yacy.yacySeedDB; +import de.anomic.yacy.logging.Log; public final class CrawlSwitchboard { diff --git a/source/de/anomic/crawler/FTPLoader.java b/source/de/anomic/crawler/FTPLoader.java index 03ff28e76..7fec7dae4 100644 --- a/source/de/anomic/crawler/FTPLoader.java +++ b/source/de/anomic/crawler/FTPLoader.java @@ -36,13 +36,13 @@ import de.anomic.http.httpRequestHeader; import de.anomic.http.httpResponseHeader; import de.anomic.http.httpdProxyCacheEntry; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.net.ftpc; import de.anomic.plasma.plasmaHTCache; import de.anomic.plasma.plasmaParser; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.parser.Document; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class FTPLoader { diff --git a/source/de/anomic/crawler/HTTPLoader.java b/source/de/anomic/crawler/HTTPLoader.java index 8e66275b3..f46d730a7 100644 --- a/source/de/anomic/crawler/HTTPLoader.java +++ b/source/de/anomic/crawler/HTTPLoader.java @@ -34,12 +34,12 @@ import de.anomic.http.httpResponse; import de.anomic.http.httpRequestHeader; import de.anomic.http.httpResponseHeader; import de.anomic.http.httpdProxyCacheEntry; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaHTCache; import de.anomic.plasma.plasmaParser; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.parser.Document; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class HTTPLoader { diff --git a/source/de/anomic/crawler/ImporterManager.java b/source/de/anomic/crawler/ImporterManager.java index 2db701c0d..c0a1561eb 100644 --- a/source/de/anomic/crawler/ImporterManager.java +++ b/source/de/anomic/crawler/ImporterManager.java @@ -2,7 +2,7 @@ package de.anomic.crawler; import java.util.Vector; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class ImporterManager { diff --git a/source/de/anomic/crawler/IndexingStack.java b/source/de/anomic/crawler/IndexingStack.java index 1a5b68990..604de3345 100644 --- a/source/de/anomic/crawler/IndexingStack.java +++ b/source/de/anomic/crawler/IndexingStack.java @@ -42,12 +42,12 @@ import de.anomic.kelondro.table.Stack; import de.anomic.kelondro.text.MetadataRepository; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaHTCache; import de.anomic.plasma.plasmaSwitchboardConstants; import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacySeedDB; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class IndexingStack { diff --git a/source/de/anomic/crawler/NoticedURL.java b/source/de/anomic/crawler/NoticedURL.java index 52a18d7b4..9e281b7a0 100755 --- a/source/de/anomic/crawler/NoticedURL.java +++ b/source/de/anomic/crawler/NoticedURL.java @@ -30,7 +30,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class NoticedURL { diff --git a/source/de/anomic/crawler/ProtocolLoader.java b/source/de/anomic/crawler/ProtocolLoader.java index 37213b575..7412f7b66 100644 --- a/source/de/anomic/crawler/ProtocolLoader.java +++ b/source/de/anomic/crawler/ProtocolLoader.java @@ -33,11 +33,11 @@ import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.parser.Document; import de.anomic.server.serverCore; import de.anomic.server.serverProcessorJob; +import de.anomic.yacy.logging.Log; public final class ProtocolLoader { diff --git a/source/de/anomic/crawler/ResourceObserver.java b/source/de/anomic/crawler/ResourceObserver.java index 334e12f75..5dd2b981a 100644 --- a/source/de/anomic/crawler/ResourceObserver.java +++ b/source/de/anomic/crawler/ResourceObserver.java @@ -28,10 +28,10 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboardConstants; import de.anomic.tools.diskUsage; +import de.anomic.yacy.logging.Log; public final class ResourceObserver { // Unknown for now diff --git a/source/de/anomic/crawler/ResultURLs.java b/source/de/anomic/crawler/ResultURLs.java index 695f65a34..3cfb9893e 100644 --- a/source/de/anomic/crawler/ResultURLs.java +++ b/source/de/anomic/crawler/ResultURLs.java @@ -42,9 +42,9 @@ import java.util.List; import de.anomic.kelondro.order.Bitfield; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.util.ScoreCluster; -import de.anomic.kelondro.util.Log; import de.anomic.yacy.yacySeedDB; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class ResultURLs { diff --git a/source/de/anomic/crawler/RobotsTxt.java b/source/de/anomic/crawler/RobotsTxt.java index 341bf6e53..50faa4ded 100644 --- a/source/de/anomic/crawler/RobotsTxt.java +++ b/source/de/anomic/crawler/RobotsTxt.java @@ -49,9 +49,9 @@ import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.ByteBuffer; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class RobotsTxt { diff --git a/source/de/anomic/data/SitemapParser.java b/source/de/anomic/data/SitemapParser.java index b012547ae..f8b8cd87f 100644 --- a/source/de/anomic/data/SitemapParser.java +++ b/source/de/anomic/data/SitemapParser.java @@ -47,9 +47,9 @@ import de.anomic.http.httpRequestHeader; import de.anomic.http.httpdByteCountInputStream; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; /** * Class to parse a sitemap file.
diff --git a/source/de/anomic/data/URLFetcherStack.java b/source/de/anomic/data/URLFetcherStack.java index dc0abf313..9d819719c 100644 --- a/source/de/anomic/data/URLFetcherStack.java +++ b/source/de/anomic/data/URLFetcherStack.java @@ -33,8 +33,8 @@ import de.anomic.kelondro.index.Row.EntryIndex; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.table.Stack; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class URLFetcherStack { diff --git a/source/de/anomic/data/blogBoard.java b/source/de/anomic/data/blogBoard.java index 46095a265..f3e190840 100644 --- a/source/de/anomic/data/blogBoard.java +++ b/source/de/anomic/data/blogBoard.java @@ -54,7 +54,7 @@ import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class blogBoard { diff --git a/source/de/anomic/data/blogBoardComments.java b/source/de/anomic/data/blogBoardComments.java index 911d400d8..1f28b38da 100644 --- a/source/de/anomic/data/blogBoardComments.java +++ b/source/de/anomic/data/blogBoardComments.java @@ -51,7 +51,7 @@ import de.anomic.kelondro.blob.BLOBTree; import de.anomic.kelondro.blob.MapView; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.NaturalOrder; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class blogBoardComments { diff --git a/source/de/anomic/data/bookmarksDB.java b/source/de/anomic/data/bookmarksDB.java index b7fbf0932..c6a1e5462 100644 --- a/source/de/anomic/data/bookmarksDB.java +++ b/source/de/anomic/data/bookmarksDB.java @@ -71,7 +71,6 @@ import de.anomic.kelondro.order.CloneableIterator; import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.parser.Word; @@ -80,6 +79,7 @@ import de.anomic.server.serverInstantBusyThread; import de.anomic.yacy.yacyNewsPool; import de.anomic.yacy.yacyNewsRecord; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class bookmarksDB { // ------------------------------------ diff --git a/source/de/anomic/data/translator.java b/source/de/anomic/data/translator.java index cf460b4b6..b3fe05a7d 100644 --- a/source/de/anomic/data/translator.java +++ b/source/de/anomic/data/translator.java @@ -48,9 +48,9 @@ import java.util.Vector; import java.util.regex.Matcher; import java.util.regex.Pattern; -import de.anomic.kelondro.util.Log; import de.anomic.server.serverSwitch; import de.anomic.tools.Formatter; +import de.anomic.yacy.logging.Log; /** * Wordlist based translator diff --git a/source/de/anomic/http/AcceptEverythingTrustManager.java b/source/de/anomic/http/AcceptEverythingTrustManager.java index bc04dbc80..6fd24d0cb 100644 --- a/source/de/anomic/http/AcceptEverythingTrustManager.java +++ b/source/de/anomic/http/AcceptEverythingTrustManager.java @@ -7,7 +7,7 @@ import java.security.cert.X509Certificate; import javax.net.ssl.X509TrustManager; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; /** * trust every server diff --git a/source/de/anomic/http/HttpConnectionInfo.java b/source/de/anomic/http/HttpConnectionInfo.java index 251cd5984..6352ea8c6 100644 --- a/source/de/anomic/http/HttpConnectionInfo.java +++ b/source/de/anomic/http/HttpConnectionInfo.java @@ -30,7 +30,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; /** * Information about a connection diff --git a/source/de/anomic/http/httpClient.java b/source/de/anomic/http/httpClient.java index ecae456ac..809bd626a 100644 --- a/source/de/anomic/http/httpClient.java +++ b/source/de/anomic/http/httpClient.java @@ -64,8 +64,8 @@ import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import de.anomic.crawler.Latency; import de.anomic.kelondro.order.Base64Order; -import de.anomic.kelondro.util.Log; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; /** * HttpClient implementation which uses Jakarta Commons HttpClient 3.x {@link http://hc.apache.org/httpclient-3.x/} diff --git a/source/de/anomic/http/httpResponseHeader.java b/source/de/anomic/http/httpResponseHeader.java index 133eebb54..21415629f 100755 --- a/source/de/anomic/http/httpResponseHeader.java +++ b/source/de/anomic/http/httpResponseHeader.java @@ -30,7 +30,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class httpResponseHeader extends httpHeader { diff --git a/source/de/anomic/http/httpTemplate.java b/source/de/anomic/http/httpTemplate.java index 89226b415..372bfebee 100644 --- a/source/de/anomic/http/httpTemplate.java +++ b/source/de/anomic/http/httpTemplate.java @@ -61,8 +61,8 @@ import java.util.HashMap; import java.util.List; import de.anomic.kelondro.util.ByteBuffer; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; +import de.anomic.yacy.logging.Log; /** * A template engine, which substitutes patterns in strings
diff --git a/source/de/anomic/http/httpd.java b/source/de/anomic/http/httpd.java index 6803cd4c2..d8016c7c0 100644 --- a/source/de/anomic/http/httpd.java +++ b/source/de/anomic/http/httpd.java @@ -66,7 +66,6 @@ import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.Digest; import de.anomic.kelondro.util.ByteBuffer; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.MemoryControl; import de.anomic.plasma.plasmaSwitchboard; @@ -77,6 +76,7 @@ import de.anomic.server.serverHandler; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; /** diff --git a/source/de/anomic/http/httpdFileHandler.java b/source/de/anomic/http/httpdFileHandler.java index ea142efab..58742a45b 100644 --- a/source/de/anomic/http/httpdFileHandler.java +++ b/source/de/anomic/http/httpdFileHandler.java @@ -84,7 +84,6 @@ import de.anomic.htmlFilter.htmlFilterContentScraper; import de.anomic.htmlFilter.htmlFilterInputStream; import de.anomic.kelondro.util.ByteBuffer; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.MemoryControl; import de.anomic.plasma.plasmaParser; @@ -96,6 +95,7 @@ import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.server.servletProperties; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; import de.anomic.ymage.ymageMatrix; public final class httpdFileHandler { diff --git a/source/de/anomic/http/httpdProxyHandler.java b/source/de/anomic/http/httpdProxyHandler.java index 1f1b52ca3..77a5ecd45 100644 --- a/source/de/anomic/http/httpdProxyHandler.java +++ b/source/de/anomic/http/httpdProxyHandler.java @@ -76,7 +76,6 @@ import de.anomic.data.Blacklist; import de.anomic.htmlFilter.htmlFilterContentTransformer; import de.anomic.htmlFilter.htmlFilterTransformer; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaHTCache; import de.anomic.plasma.plasmaParser; @@ -87,6 +86,7 @@ import de.anomic.server.serverCore; import de.anomic.server.serverDomains; import de.anomic.server.serverObjects; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class httpdProxyHandler { diff --git a/source/de/anomic/icap/icapd.java b/source/de/anomic/icap/icapd.java index b4ebcfa8f..80c80e309 100644 --- a/source/de/anomic/icap/icapd.java +++ b/source/de/anomic/icap/icapd.java @@ -41,7 +41,6 @@ import de.anomic.http.httpRequestHeader; import de.anomic.http.httpResponseHeader; import de.anomic.http.httpdProxyCacheEntry; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaHTCache; import de.anomic.plasma.plasmaParser; @@ -51,6 +50,7 @@ import de.anomic.server.serverCore; import de.anomic.server.serverHandler; import de.anomic.server.serverCore.Session; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; /** * @author theli diff --git a/source/de/anomic/kelondro/blob/BLOBArray.java b/source/de/anomic/kelondro/blob/BLOBArray.java index 895b0809c..f1572692a 100755 --- a/source/de/anomic/kelondro/blob/BLOBArray.java +++ b/source/de/anomic/kelondro/blob/BLOBArray.java @@ -48,7 +48,7 @@ import de.anomic.kelondro.text.ReferenceFactory; import de.anomic.kelondro.text.ReferenceContainerCache.blobFileEntries; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class BLOBArray implements BLOB { diff --git a/source/de/anomic/kelondro/blob/BLOBHeapModifier.java b/source/de/anomic/kelondro/blob/BLOBHeapModifier.java index 57a4105b8..bf83cbc23 100644 --- a/source/de/anomic/kelondro/blob/BLOBHeapModifier.java +++ b/source/de/anomic/kelondro/blob/BLOBHeapModifier.java @@ -34,7 +34,7 @@ import de.anomic.kelondro.io.CachedRandomAccess; import de.anomic.kelondro.order.ByteOrder; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.MemoryControl; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class BLOBHeapModifier extends HeapReader implements BLOB { diff --git a/source/de/anomic/kelondro/blob/HeapReader.java b/source/de/anomic/kelondro/blob/HeapReader.java index d689f35ca..e91a09b30 100644 --- a/source/de/anomic/kelondro/blob/HeapReader.java +++ b/source/de/anomic/kelondro/blob/HeapReader.java @@ -41,7 +41,7 @@ import de.anomic.kelondro.order.CloneableIterator; import de.anomic.kelondro.order.RotateIterator; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.MemoryControl; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class HeapReader { diff --git a/source/de/anomic/kelondro/blob/HeapWriter.java b/source/de/anomic/kelondro/blob/HeapWriter.java index d43b15bf0..3567b6d02 100644 --- a/source/de/anomic/kelondro/blob/HeapWriter.java +++ b/source/de/anomic/kelondro/blob/HeapWriter.java @@ -34,7 +34,7 @@ import de.anomic.kelondro.index.HandleMap; import de.anomic.kelondro.order.ByteOrder; import de.anomic.kelondro.order.Digest; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public final class HeapWriter { diff --git a/source/de/anomic/kelondro/index/Row.java b/source/de/anomic/kelondro/index/Row.java index 4374c073c..0f23d866c 100644 --- a/source/de/anomic/kelondro/index/Row.java +++ b/source/de/anomic/kelondro/index/Row.java @@ -44,7 +44,7 @@ import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.order.Order; import de.anomic.kelondro.util.ByteBuffer; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public final class Row { diff --git a/source/de/anomic/kelondro/index/RowCollection.java b/source/de/anomic/kelondro/index/RowCollection.java index f68199a5c..fcc556cc5 100644 --- a/source/de/anomic/kelondro/index/RowCollection.java +++ b/source/de/anomic/kelondro/index/RowCollection.java @@ -43,9 +43,9 @@ import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.MemoryControl; import de.anomic.kelondro.util.NamePrefixThreadFactory; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.server.serverProcessor; +import de.anomic.yacy.logging.Log; public class RowCollection implements Iterable { diff --git a/source/de/anomic/kelondro/index/RowSet.java b/source/de/anomic/kelondro/index/RowSet.java index 7eba1e91b..35f51ac53 100644 --- a/source/de/anomic/kelondro/index/RowSet.java +++ b/source/de/anomic/kelondro/index/RowSet.java @@ -32,7 +32,7 @@ import java.util.Random; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.CloneableIterator; import de.anomic.kelondro.order.NaturalOrder; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class RowSet extends RowCollection implements ObjectIndex, Iterable { diff --git a/source/de/anomic/kelondro/order/Base64Order.java b/source/de/anomic/kelondro/order/Base64Order.java index 8a127baca..4c2751e6b 100644 --- a/source/de/anomic/kelondro/order/Base64Order.java +++ b/source/de/anomic/kelondro/order/Base64Order.java @@ -30,7 +30,7 @@ package de.anomic.kelondro.order; import java.io.UnsupportedEncodingException; import java.util.Comparator; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class Base64Order extends AbstractOrder implements ByteOrder, Coding, Comparator, Cloneable { diff --git a/source/de/anomic/kelondro/order/Digest.java b/source/de/anomic/kelondro/order/Digest.java index bc9d8a8be..0ef791d75 100644 --- a/source/de/anomic/kelondro/order/Digest.java +++ b/source/de/anomic/kelondro/order/Digest.java @@ -44,7 +44,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.LinkedBlockingQueue; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class Digest { diff --git a/source/de/anomic/kelondro/table/AbstractRecords.java b/source/de/anomic/kelondro/table/AbstractRecords.java index 8ec80d14d..3d045a351 100644 --- a/source/de/anomic/kelondro/table/AbstractRecords.java +++ b/source/de/anomic/kelondro/table/AbstractRecords.java @@ -51,7 +51,7 @@ import de.anomic.kelondro.order.ByteOrder; import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public abstract class AbstractRecords implements RandomAccessRecords { diff --git a/source/de/anomic/kelondro/table/EcoTable.java b/source/de/anomic/kelondro/table/EcoTable.java index 136a8a3e3..d44218e4e 100644 --- a/source/de/anomic/kelondro/table/EcoTable.java +++ b/source/de/anomic/kelondro/table/EcoTable.java @@ -52,7 +52,7 @@ import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.MemoryControl; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; /* * The EcoIndex builds upon the EcoFS and tries to reduce the number of IO requests that the diff --git a/source/de/anomic/kelondro/table/FlexWidthArray.java b/source/de/anomic/kelondro/table/FlexWidthArray.java index 1f78eed87..7bf363ace 100644 --- a/source/de/anomic/kelondro/table/FlexWidthArray.java +++ b/source/de/anomic/kelondro/table/FlexWidthArray.java @@ -38,7 +38,7 @@ import de.anomic.kelondro.index.Row; import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class FlexWidthArray implements ObjectArray { diff --git a/source/de/anomic/kelondro/table/SplitTable.java b/source/de/anomic/kelondro/table/SplitTable.java index 8bb3078ee..d2e7a31c3 100644 --- a/source/de/anomic/kelondro/table/SplitTable.java +++ b/source/de/anomic/kelondro/table/SplitTable.java @@ -61,8 +61,8 @@ import de.anomic.kelondro.order.Order; import de.anomic.kelondro.order.StackIterator; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.NamePrefixThreadFactory; +import de.anomic.yacy.logging.Log; public class SplitTable implements ObjectIndex { diff --git a/source/de/anomic/kelondro/table/Stack.java b/source/de/anomic/kelondro/table/Stack.java index aa0b4a112..441f3c7a6 100644 --- a/source/de/anomic/kelondro/table/Stack.java +++ b/source/de/anomic/kelondro/table/Stack.java @@ -37,8 +37,8 @@ import java.util.StringTokenizer; import de.anomic.kelondro.index.Row; import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.kelondroException; +import de.anomic.yacy.logging.Log; public final class Stack extends FullRecords { diff --git a/source/de/anomic/kelondro/table/Tree.java b/source/de/anomic/kelondro/table/Tree.java index e0260e2fa..94293ed6f 100644 --- a/source/de/anomic/kelondro/table/Tree.java +++ b/source/de/anomic/kelondro/table/Tree.java @@ -52,7 +52,7 @@ import de.anomic.kelondro.order.CloneableIterator; import de.anomic.kelondro.order.NaturalOrder; import de.anomic.kelondro.util.FileUtils; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class Tree extends CachedRecords implements ObjectIndex { diff --git a/source/de/anomic/kelondro/text/IODispatcher.java b/source/de/anomic/kelondro/text/IODispatcher.java index ecc144071..c20dca314 100644 --- a/source/de/anomic/kelondro/text/IODispatcher.java +++ b/source/de/anomic/kelondro/text/IODispatcher.java @@ -31,8 +31,8 @@ import java.util.concurrent.Semaphore; import de.anomic.kelondro.blob.BLOBArray; import de.anomic.kelondro.index.Row; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.MemoryControl; +import de.anomic.yacy.logging.Log; /** * this is a concurrent merger that can merge single files that are queued for merging. diff --git a/source/de/anomic/kelondro/text/MetadataRepository.java b/source/de/anomic/kelondro/text/MetadataRepository.java index 96601a15d..71e8e903f 100644 --- a/source/de/anomic/kelondro/text/MetadataRepository.java +++ b/source/de/anomic/kelondro/text/MetadataRepository.java @@ -52,8 +52,8 @@ import de.anomic.kelondro.table.SplitTable; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.text.referencePrototype.WordReference; import de.anomic.kelondro.util.ScoreCluster; -import de.anomic.kelondro.util.Log; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class MetadataRepository implements Iterable { diff --git a/source/de/anomic/kelondro/text/ReferenceContainerArray.java b/source/de/anomic/kelondro/text/ReferenceContainerArray.java index 255bbd717..fbfdc4bc7 100644 --- a/source/de/anomic/kelondro/text/ReferenceContainerArray.java +++ b/source/de/anomic/kelondro/text/ReferenceContainerArray.java @@ -36,7 +36,7 @@ import de.anomic.kelondro.index.Row; import de.anomic.kelondro.index.RowSet; import de.anomic.kelondro.order.ByteOrder; import de.anomic.kelondro.order.CloneableIterator; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public final class ReferenceContainerArray { diff --git a/source/de/anomic/kelondro/text/ReferenceContainerCache.java b/source/de/anomic/kelondro/text/ReferenceContainerCache.java index f77e437d7..f5f23c1b1 100644 --- a/source/de/anomic/kelondro/text/ReferenceContainerCache.java +++ b/source/de/anomic/kelondro/text/ReferenceContainerCache.java @@ -42,9 +42,9 @@ import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.ByteOrder; import de.anomic.kelondro.util.ByteArray; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.index.Row; import de.anomic.kelondro.index.RowSet; +import de.anomic.yacy.logging.Log; public final class ReferenceContainerCache extends AbstractIndex implements Index, IndexReader, Iterable> { diff --git a/source/de/anomic/kelondro/text/Segment.java b/source/de/anomic/kelondro/text/Segment.java index acfd1ef46..c715ac78e 100644 --- a/source/de/anomic/kelondro/text/Segment.java +++ b/source/de/anomic/kelondro/text/Segment.java @@ -46,13 +46,13 @@ import de.anomic.kelondro.text.navigationPrototype.NavigationReferenceRow; import de.anomic.kelondro.text.referencePrototype.WordReference; import de.anomic.kelondro.text.referencePrototype.WordReferenceFactory; import de.anomic.kelondro.text.referencePrototype.WordReferenceRow; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParserDocument; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.parser.Word; import de.anomic.plasma.parser.Condenser; import de.anomic.tools.iso639; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class Segment { diff --git a/source/de/anomic/kelondro/util/FileUtils.java b/source/de/anomic/kelondro/util/FileUtils.java index 9e4c76269..c8dcb4974 100644 --- a/source/de/anomic/kelondro/util/FileUtils.java +++ b/source/de/anomic/kelondro/util/FileUtils.java @@ -58,6 +58,7 @@ import java.util.zip.ZipOutputStream; import de.anomic.kelondro.index.Row; import de.anomic.kelondro.index.RowSet; +import de.anomic.yacy.logging.Log; public final class FileUtils { diff --git a/source/de/anomic/kelondro/util/Log.java b/source/de/anomic/kelondro/util/Log.java deleted file mode 100644 index 24dfb2c7a..000000000 --- a/source/de/anomic/kelondro/util/Log.java +++ /dev/null @@ -1,217 +0,0 @@ -// serverLog.java -// ------------------------------------- -// (C) by Michael Peter Christen; mc@yacy.net -// first published on http://www.anomic.de -// Frankfurt, Germany, 2004 -// last major change: $LastChangedDate: 2009-01-30 14:48:11 +0000 (Fr, 30 Jan 2009) $ by $LastChangedBy: orbiter $ -// Revision: $LastChangedRevision: 5539 $ -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -package de.anomic.kelondro.util; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.logging.Level; -import java.util.logging.LogManager; -import java.util.logging.Logger; - -public final class Log { - - // log-level categories - public static final int LOGLEVEL_ZERO = Level.OFF.intValue(); // no output at all - public static final int LOGLEVEL_SEVERE = Level.SEVERE.intValue(); // system-level error, internal cause, critical and not fixeable (i.e. inconsistency) - public static final int LOGLEVEL_WARNING = Level.WARNING.intValue(); // uncritical service failure, may require user activity (i.e. input required, wrong authorization) - public static final int LOGLEVEL_CONFIG = Level.CONFIG.intValue(); // regular system status information (i.e. start-up messages) - public static final int LOGLEVEL_INFO = Level.INFO.intValue(); // regular action information (i.e. any httpd request URL) - public static final int LOGLEVEL_FINE = Level.FINE.intValue(); // in-function status debug output - public static final int LOGLEVEL_FINER = Level.FINER.intValue(); // in-function status debug output - public static final int LOGLEVEL_FINEST = Level.FINEST.intValue(); // in-function status debug output - - // these categories are also present as character tokens - public static final char LOGTOKEN_ZERO = 'Z'; - public static final char LOGTOKEN_SEVERE = 'E'; - public static final char LOGTOKEN_WARNING = 'W'; - public static final char LOGTOKEN_CONFIG = 'S'; - public static final char LOGTOKEN_INFO = 'I'; - public static final char LOGTOKEN_FINE = 'D'; - public static final char LOGTOKEN_FINER = 'D'; - public static final char LOGTOKEN_FINEST = 'D'; - - private final Logger theLogger; - - public Log(final String appName) { - this.theLogger = Logger.getLogger(appName); - //this.theLogger.setLevel(Level.FINEST); // set a default level - } - - public void setLevel(final Level newLevel) { - this.theLogger.setLevel(newLevel); - } - - public void logSevere(final String message) {this.theLogger.severe(message);} - public void logSevere(final String message, final Throwable thrown) {this.theLogger.log(Level.SEVERE,message,thrown);} - public boolean isSevere() { return this.theLogger.isLoggable(Level.SEVERE); } - - public void logWarning(final String message) {this.theLogger.warning(message);} - public void logWarning(final String message, final Throwable thrown) {this.theLogger.log(Level.WARNING,message,thrown);} - public boolean isWarning() { return this.theLogger.isLoggable(Level.WARNING); } - - public void logConfig(final String message) {this.theLogger.config(message);} - public void logConfig(final String message, final Throwable thrown) {this.theLogger.log(Level.CONFIG,message,thrown);} - public boolean isConfig() { return this.theLogger.isLoggable(Level.CONFIG); } - - public void logInfo(final String message) {this.theLogger.info(message);} - public void logInfo(final String message, final Throwable thrown) {this.theLogger.log(Level.INFO,message,thrown);} - public boolean isInfo() { return this.theLogger.isLoggable(Level.INFO); } - - public void logFine(final String message) {this.theLogger.fine(message);} - public void logFine(final String message, final Throwable thrown) {this.theLogger.log(Level.FINE,message,thrown);} - public boolean isFine() { return this.theLogger.isLoggable(Level.FINE); } - - public void logFiner(final String message) {this.theLogger.finer(message);} - public void logFiner(final String message, final Throwable thrown) {this.theLogger.log(Level.FINER,message,thrown);} - public boolean isFiner() { return this.theLogger.isLoggable(Level.FINER); } - - public void logFinest(final String message) {this.theLogger.finest(message);} - public void logFinest(final String message, final Throwable thrown) {this.theLogger.log(Level.FINEST,message,thrown);} - public boolean isFinest() { return this.theLogger.isLoggable(Level.FINEST); } - - public boolean isLoggable(final Level level) { - return this.theLogger.isLoggable(level); - } - - - // static log messages: log everything - public static void logSevere(final String appName, final String message) { - Logger.getLogger(appName).severe(message); - } - public static void logSevere(final String appName, final String message, final Throwable thrown) { - Logger.getLogger(appName).log(Level.SEVERE,message,thrown); - } - public static boolean isSevere(final String appName) { - return Logger.getLogger(appName).isLoggable(Level.SEVERE); - } - - public static void logWarning(final String appName, final String message) { - Logger.getLogger(appName).warning(message); - } - public static void logWarning(final String appName, final String message, final Throwable thrown) { - Logger.getLogger(appName).log(Level.WARNING,message,thrown); - } - public static boolean isWarning(final String appName) { - return Logger.getLogger(appName).isLoggable(Level.WARNING); - } - - public static void logConfig(final String appName, final String message) { - Logger.getLogger(appName).config(message); - } - public static void logConfig(final String appName, final String message, final Throwable thrown) { - Logger.getLogger(appName).log(Level.CONFIG,message,thrown); - } - public static boolean isConfig(final String appName) { - return Logger.getLogger(appName).isLoggable(Level.CONFIG); - } - - public static void logInfo(final String appName, final String message) { - Logger.getLogger(appName).info(message); - } - public static void logInfo(final String appName, final String message, final Throwable thrown) { - Logger.getLogger(appName).log(Level.INFO,message,thrown); - } - public static boolean isInfo(final String appName) { - return Logger.getLogger(appName).isLoggable(Level.INFO); - } - - public static void logFine(final String appName, final String message) { - Logger.getLogger(appName).fine(message); - } - public static void logFine(final String appName, final String message, final Throwable thrown) { - Logger.getLogger(appName).log(Level.FINE,message,thrown); - } - public static boolean isFine(final String appName) { - return Logger.getLogger(appName).isLoggable(Level.FINE); - } - - public static void logFiner(final String appName, final String message) { - Logger.getLogger(appName).finer(message); - } - public static void logFiner(final String appName, final String message, final Throwable thrown) { - Logger.getLogger(appName).log(Level.FINER,message,thrown); - } - public static boolean isFiner(final String appName) { - return Logger.getLogger(appName).isLoggable(Level.FINER); - } - - public static void logFinest(final String appName, final String message) { - Logger.getLogger(appName).finest(message); - } - public static void logFinest(final String appName, final String message, final Throwable thrown) { - Logger.getLogger(appName).log(Level.FINEST,message,thrown); - } - public static boolean isFinest(final String appName) { - return Logger.getLogger(appName).isLoggable(Level.FINEST); - } - - public static final void configureLogging(final File homePath, final File loggingConfigFile) throws SecurityException, FileNotFoundException, IOException { - FileInputStream fileIn = null; - try { - System.out.println("STARTUP: Trying to load logging configuration from file " + loggingConfigFile.toString()); - fileIn = new FileInputStream(loggingConfigFile); - - // loading the logger configuration from file - final LogManager logManager = LogManager.getLogManager(); - logManager.readConfiguration(fileIn); - - // creating the logging directory - final String logPattern = logManager.getProperty("java.util.logging.FileHandler.pattern"); - int stripPos = logPattern.lastIndexOf('/'); - if (stripPos < 0) stripPos = logPattern.lastIndexOf(File.pathSeparatorChar); - File log = new File(logPattern.substring(0, stripPos)); - if (!log.isAbsolute()) log = new File(homePath, log.getPath()); - if (!log.canRead()) log.mkdir(); - - // TODO: changing the pattern settings for the file handlers - - // generating the root logger - /*Logger logger =*/ Logger.getLogger(""); - -// System.setOut(new PrintStream(new LoggerOutputStream(Logger.getLogger("STDOUT"),Level.FINEST))); -// System.setErr(new PrintStream(new LoggerOutputStream(Logger.getLogger("STDERR"),Level.SEVERE))); - } finally { - if (fileIn != null) try {fileIn.close();}catch(final Exception e){} - } - } - - public static final String format(final String s, int n, final int fillChar) { - final int l = s.length(); - if (l >= n) return s; - final StringBuilder sb = new StringBuilder(l + n); - for (final int i = l + n; i > n; n--) sb.insert(0, fillChar); - return sb.toString(); - } - - public static final boolean allZero(final byte[] a) { - return allZero(a, 0, a.length); - } - - public static final boolean allZero(final byte[] a, final int astart, final int alength) { - for (int i = 0; i < alength; i++) if (a[astart + i] != 0) return false; - return true; - } - -} diff --git a/source/de/anomic/kelondro/util/MemoryControl.java b/source/de/anomic/kelondro/util/MemoryControl.java index ca4277b84..b2cef28fb 100644 --- a/source/de/anomic/kelondro/util/MemoryControl.java +++ b/source/de/anomic/kelondro/util/MemoryControl.java @@ -26,6 +26,7 @@ package de.anomic.kelondro.util; import de.anomic.tools.Formatter; +import de.anomic.yacy.logging.Log; /** * Use this to get information about memory usage or try to free some memory diff --git a/source/de/anomic/language/identification/LanguageStatistics.java b/source/de/anomic/language/identification/LanguageStatistics.java index b32f71bcd..ff6e14d64 100644 --- a/source/de/anomic/language/identification/LanguageStatistics.java +++ b/source/de/anomic/language/identification/LanguageStatistics.java @@ -33,7 +33,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; /** * This class can store statistical data of a language. diff --git a/source/de/anomic/language/identification/LanguageStatisticsHolder.java b/source/de/anomic/language/identification/LanguageStatisticsHolder.java index 319dd0150..1be45875b 100644 --- a/source/de/anomic/language/identification/LanguageStatisticsHolder.java +++ b/source/de/anomic/language/identification/LanguageStatisticsHolder.java @@ -28,7 +28,7 @@ import java.io.File; import java.io.FilenameFilter; import java.util.Vector; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; /** * This class loads and provides several language statistics to the system. diff --git a/source/de/anomic/net/UPnP.java b/source/de/anomic/net/UPnP.java index 40d921867..f2abdbd6f 100644 --- a/source/de/anomic/net/UPnP.java +++ b/source/de/anomic/net/UPnP.java @@ -36,9 +36,9 @@ import net.sbbi.upnp.DiscoveryEventHandler; import net.sbbi.upnp.devices.UPNPRootDevice; import net.sbbi.upnp.impls.InternetGatewayDevice; import net.sbbi.upnp.messages.UPNPResponseException; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboardConstants; +import de.anomic.yacy.logging.Log; public class UPnP { diff --git a/source/de/anomic/plasma/parser/AbstractParser.java b/source/de/anomic/plasma/parser/AbstractParser.java index 620a5364e..3140ab047 100644 --- a/source/de/anomic/plasma/parser/AbstractParser.java +++ b/source/de/anomic/plasma/parser/AbstractParser.java @@ -33,11 +33,11 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParser; import de.anomic.plasma.plasmaParserDocument; import de.anomic.server.serverThread; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; /** * New classes implementing the {@link de.anomic.plasma.parser.Parser} interface diff --git a/source/de/anomic/plasma/parser/Parser.java b/source/de/anomic/plasma/parser/Parser.java index c213ac620..7b8705c97 100644 --- a/source/de/anomic/plasma/parser/Parser.java +++ b/source/de/anomic/plasma/parser/Parser.java @@ -29,9 +29,9 @@ import java.io.File; import java.io.InputStream; import java.util.Hashtable; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParserDocument; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; /** * This interface defines a list of methods that needs to be implemented diff --git a/source/de/anomic/plasma/parser/odt/odtParser.java b/source/de/anomic/plasma/parser/odt/odtParser.java index 65e3e6798..3cd82547a 100644 --- a/source/de/anomic/plasma/parser/odt/odtParser.java +++ b/source/de/anomic/plasma/parser/odt/odtParser.java @@ -45,7 +45,6 @@ import com.catcode.odf.OpenDocumentTextInputStream; import de.anomic.crawler.HTTPLoader; import de.anomic.http.httpClient; import de.anomic.http.httpRequestHeader; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaParserDocument; import de.anomic.plasma.parser.AbstractParser; @@ -53,6 +52,7 @@ import de.anomic.plasma.parser.Parser; import de.anomic.plasma.parser.ParserException; import de.anomic.server.serverCharBuffer; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class odtParser extends AbstractParser implements Parser { diff --git a/source/de/anomic/plasma/parser/sevenzip/SZParserExtractCallback.java b/source/de/anomic/plasma/parser/sevenzip/SZParserExtractCallback.java index 9897f8687..442992e12 100644 --- a/source/de/anomic/plasma/parser/sevenzip/SZParserExtractCallback.java +++ b/source/de/anomic/plasma/parser/sevenzip/SZParserExtractCallback.java @@ -29,13 +29,13 @@ import java.io.OutputStream; import SevenZip.ArchiveExtractCallback; import SevenZip.Archive.IInArchive; import SevenZip.Archive.SevenZipEntry; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParser; import de.anomic.plasma.plasmaParserDocument; import de.anomic.plasma.parser.AbstractParser; import de.anomic.plasma.parser.ParserException; import de.anomic.server.serverCachedFileOutputStream; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; // wrapper class to redirect output of standard ArchiveExtractCallback to serverLog // and parse the extracted content diff --git a/source/de/anomic/plasma/plasmaHTCache.java b/source/de/anomic/plasma/plasmaHTCache.java index 4e64ac7ca..8d9fc89cd 100644 --- a/source/de/anomic/plasma/plasmaHTCache.java +++ b/source/de/anomic/plasma/plasmaHTCache.java @@ -47,11 +47,11 @@ import de.anomic.kelondro.blob.BLOBCompressor; import de.anomic.kelondro.blob.BLOBHeap; import de.anomic.kelondro.blob.MapView; import de.anomic.kelondro.order.Base64Order; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.parser.Document; import de.anomic.yacy.yacySeedDB; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class plasmaHTCache { diff --git a/source/de/anomic/plasma/plasmaParser.java b/source/de/anomic/plasma/plasmaParser.java index 2698e4f17..499e7ad68 100644 --- a/source/de/anomic/plasma/plasmaParser.java +++ b/source/de/anomic/plasma/plasmaParser.java @@ -60,13 +60,13 @@ import de.anomic.htmlFilter.htmlFilterInputStream; import de.anomic.htmlFilter.htmlFilterWriter; import de.anomic.http.httpClient; import de.anomic.http.httpResponse; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.parser.Parser; import de.anomic.plasma.parser.ParserException; import de.anomic.plasma.parser.ParserInfo; import de.anomic.tools.ListDirs; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class plasmaParser { public static final String PARSER_MODE_PROXY = "PROXY"; diff --git a/source/de/anomic/plasma/plasmaParserConfig.java b/source/de/anomic/plasma/plasmaParserConfig.java index 282a556b6..9c971b5d3 100644 --- a/source/de/anomic/plasma/plasmaParserConfig.java +++ b/source/de/anomic/plasma/plasmaParserConfig.java @@ -33,9 +33,9 @@ import java.util.Hashtable; import java.util.Iterator; import java.util.Set; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.parser.Parser; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class plasmaParserConfig { /** diff --git a/source/de/anomic/plasma/plasmaRankingDistribution.java b/source/de/anomic/plasma/plasmaRankingDistribution.java index 30e6458b2..b96cb6d3e 100644 --- a/source/de/anomic/plasma/plasmaRankingDistribution.java +++ b/source/de/anomic/plasma/plasmaRankingDistribution.java @@ -30,12 +30,12 @@ import java.io.IOException; import java.util.Random; import java.util.StringTokenizer; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.yacy.yacyClient; import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacySeedDB; import de.anomic.yacy.yacyVersion; +import de.anomic.yacy.logging.Log; public final class plasmaRankingDistribution { diff --git a/source/de/anomic/plasma/plasmaSearchEvent.java b/source/de/anomic/plasma/plasmaSearchEvent.java index 399f853b2..8701ebfd9 100644 --- a/source/de/anomic/plasma/plasmaSearchEvent.java +++ b/source/de/anomic/plasma/plasmaSearchEvent.java @@ -49,7 +49,6 @@ import de.anomic.kelondro.util.MemoryControl; import de.anomic.kelondro.util.SetTools; import de.anomic.kelondro.util.SortStack; import de.anomic.kelondro.util.SortStore; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.parser.Word; import de.anomic.plasma.parser.Condenser; import de.anomic.plasma.plasmaSearchRankingProcess.NavigatorEntry; @@ -61,6 +60,7 @@ import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacySeedDB; import de.anomic.yacy.yacyURL; import de.anomic.yacy.dht.FlatWordPartitionScheme; +import de.anomic.yacy.logging.Log; public final class plasmaSearchEvent { diff --git a/source/de/anomic/plasma/plasmaSearchImages.java b/source/de/anomic/plasma/plasmaSearchImages.java index 1ce82afb8..2ee577ddc 100644 --- a/source/de/anomic/plasma/plasmaSearchImages.java +++ b/source/de/anomic/plasma/plasmaSearchImages.java @@ -31,9 +31,9 @@ import java.util.Iterator; import de.anomic.htmlFilter.htmlFilterContentScraper; import de.anomic.htmlFilter.htmlFilterImageEntry; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.parser.ParserException; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public final class plasmaSearchImages { diff --git a/source/de/anomic/plasma/plasmaSnippetCache.java b/source/de/anomic/plasma/plasmaSnippetCache.java index 73bb1ffd8..8631c69e3 100644 --- a/source/de/anomic/plasma/plasmaSnippetCache.java +++ b/source/de/anomic/plasma/plasmaSnippetCache.java @@ -46,7 +46,6 @@ import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.util.ScoreCluster; import de.anomic.kelondro.util.SetTools; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.parser.Document; import de.anomic.plasma.parser.ParserException; import de.anomic.plasma.parser.Word; @@ -54,6 +53,7 @@ import de.anomic.plasma.parser.Condenser; import de.anomic.search.Query; import de.anomic.yacy.yacySearch; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class plasmaSnippetCache { diff --git a/source/de/anomic/plasma/plasmaSwitchboard.java b/source/de/anomic/plasma/plasmaSwitchboard.java index 6a777739b..42ce16b45 100644 --- a/source/de/anomic/plasma/plasmaSwitchboard.java +++ b/source/de/anomic/plasma/plasmaSwitchboard.java @@ -156,7 +156,6 @@ import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.FileUtils; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.MemoryControl; import de.anomic.kelondro.util.SetTools; import de.anomic.net.UPnP; @@ -194,6 +193,7 @@ import de.anomic.yacy.yacyRelease; import de.anomic.yacy.yacyVersion; import de.anomic.yacy.dht.Dispatcher; import de.anomic.yacy.dht.PeerSelection; +import de.anomic.yacy.logging.Log; public final class plasmaSwitchboard extends serverAbstractSwitch implements serverSwitch { diff --git a/source/de/anomic/plasma/plasmaWebStructure.java b/source/de/anomic/plasma/plasmaWebStructure.java index 4af310904..b13a779b8 100644 --- a/source/de/anomic/plasma/plasmaWebStructure.java +++ b/source/de/anomic/plasma/plasmaWebStructure.java @@ -40,10 +40,10 @@ import java.util.TreeSet; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.MicroDate; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.parser.Condenser; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class plasmaWebStructure { diff --git a/source/de/anomic/server/serverAbstractBlockingThread.java b/source/de/anomic/server/serverAbstractBlockingThread.java index c7548aa14..7023656dd 100644 --- a/source/de/anomic/server/serverAbstractBlockingThread.java +++ b/source/de/anomic/server/serverAbstractBlockingThread.java @@ -25,7 +25,7 @@ package de.anomic.server; import de.anomic.kelondro.util.MemoryControl; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public abstract class serverAbstractBlockingThread extends serverAbstractThread implements serverBlockingThread { diff --git a/source/de/anomic/server/serverAbstractBusyThread.java b/source/de/anomic/server/serverAbstractBusyThread.java index 37f14174e..7585ea3ff 100644 --- a/source/de/anomic/server/serverAbstractBusyThread.java +++ b/source/de/anomic/server/serverAbstractBusyThread.java @@ -27,7 +27,7 @@ package de.anomic.server; import java.net.SocketException; import de.anomic.kelondro.util.MemoryControl; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public abstract class serverAbstractBusyThread extends serverAbstractThread implements serverBusyThread { diff --git a/source/de/anomic/server/serverAbstractSwitch.java b/source/de/anomic/server/serverAbstractSwitch.java index 3eaafe69a..257a8ab11 100644 --- a/source/de/anomic/server/serverAbstractSwitch.java +++ b/source/de/anomic/server/serverAbstractSwitch.java @@ -31,8 +31,8 @@ import java.util.SortedMap; import java.util.TreeMap; import java.util.concurrent.LinkedBlockingQueue; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; +import de.anomic.yacy.logging.Log; public abstract class serverAbstractSwitch implements serverSwitch { diff --git a/source/de/anomic/server/serverAbstractThread.java b/source/de/anomic/server/serverAbstractThread.java index e43887228..11a0d4c63 100644 --- a/source/de/anomic/server/serverAbstractThread.java +++ b/source/de/anomic/server/serverAbstractThread.java @@ -34,7 +34,7 @@ package de.anomic.server; import java.nio.channels.ClosedByInterruptException; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public abstract class serverAbstractThread extends Thread implements serverThread { diff --git a/source/de/anomic/server/serverCore.java b/source/de/anomic/server/serverCore.java index 5ee76cc70..ae8143dbb 100644 --- a/source/de/anomic/server/serverCore.java +++ b/source/de/anomic/server/serverCore.java @@ -58,9 +58,9 @@ import javax.net.ssl.SSLSocketFactory; import de.anomic.icap.icapd; import de.anomic.kelondro.util.ByteBuffer; -import de.anomic.kelondro.util.Log; import de.anomic.tools.PKCS12Tool; import de.anomic.urlRedirector.urlRedirectord; +import de.anomic.yacy.logging.Log; public final class serverCore extends serverAbstractBusyThread implements serverBusyThread { diff --git a/source/de/anomic/server/serverInstantBlockingThread.java b/source/de/anomic/server/serverInstantBlockingThread.java index 5658b4c5b..4e27ef4a2 100644 --- a/source/de/anomic/server/serverInstantBlockingThread.java +++ b/source/de/anomic/server/serverInstantBlockingThread.java @@ -28,7 +28,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.concurrent.ConcurrentHashMap; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class serverInstantBlockingThread extends serverAbstractBlockingThread implements serverBlockingThread { diff --git a/source/de/anomic/server/serverInstantBusyThread.java b/source/de/anomic/server/serverInstantBusyThread.java index 26b708ce5..a955a4663 100644 --- a/source/de/anomic/server/serverInstantBusyThread.java +++ b/source/de/anomic/server/serverInstantBusyThread.java @@ -25,7 +25,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.TreeMap; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public final class serverInstantBusyThread extends serverAbstractBusyThread implements serverBusyThread { diff --git a/source/de/anomic/server/serverProcessor.java b/source/de/anomic/server/serverProcessor.java index 92d96494b..44f77e6b1 100644 --- a/source/de/anomic/server/serverProcessor.java +++ b/source/de/anomic/server/serverProcessor.java @@ -33,8 +33,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.NamePrefixThreadFactory; +import de.anomic.yacy.logging.Log; public class serverProcessor { diff --git a/source/de/anomic/server/serverSwitch.java b/source/de/anomic/server/serverSwitch.java index 3e0392c7c..57fb67189 100644 --- a/source/de/anomic/server/serverSwitch.java +++ b/source/de/anomic/server/serverSwitch.java @@ -36,7 +36,7 @@ import java.util.Iterator; import java.util.Map; import java.util.SortedMap; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public interface serverSwitch { diff --git a/source/de/anomic/server/serverSwitchAbstractAction.java b/source/de/anomic/server/serverSwitchAbstractAction.java index bb982d075..ea294c766 100644 --- a/source/de/anomic/server/serverSwitchAbstractAction.java +++ b/source/de/anomic/server/serverSwitchAbstractAction.java @@ -21,7 +21,7 @@ package de.anomic.server; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public abstract class serverSwitchAbstractAction { diff --git a/source/de/anomic/server/serverSwitchAction.java b/source/de/anomic/server/serverSwitchAction.java index b7b3892d9..3be0fc891 100644 --- a/source/de/anomic/server/serverSwitchAction.java +++ b/source/de/anomic/server/serverSwitchAction.java @@ -21,7 +21,7 @@ package de.anomic.server; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public interface serverSwitchAction { diff --git a/source/de/anomic/server/serverSystem.java b/source/de/anomic/server/serverSystem.java index 2576f5e65..967e7fd1e 100644 --- a/source/de/anomic/server/serverSystem.java +++ b/source/de/anomic/server/serverSystem.java @@ -33,9 +33,9 @@ import java.util.List; import java.util.Properties; import java.util.Vector; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.tools.consoleInterface; +import de.anomic.yacy.logging.Log; public final class serverSystem { diff --git a/source/de/anomic/server/serverThread.java b/source/de/anomic/server/serverThread.java index bf9b29d95..ff96a5948 100644 --- a/source/de/anomic/server/serverThread.java +++ b/source/de/anomic/server/serverThread.java @@ -24,7 +24,7 @@ package de.anomic.server; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public interface serverThread { diff --git a/source/de/anomic/tools/DidYouMean.java b/source/de/anomic/tools/DidYouMean.java index 8bb7afffc..cab32cf41 100644 --- a/source/de/anomic/tools/DidYouMean.java +++ b/source/de/anomic/tools/DidYouMean.java @@ -7,8 +7,8 @@ import java.util.concurrent.LinkedBlockingQueue; import de.anomic.kelondro.text.IndexCell; import de.anomic.kelondro.text.referencePrototype.WordReference; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.parser.Word; +import de.anomic.yacy.logging.Log; // People make mistakes when they type words. // The most common mistakes are the four categories listed below: diff --git a/source/de/anomic/tools/consoleInterface.java b/source/de/anomic/tools/consoleInterface.java index 039a11d59..35d80d442 100755 --- a/source/de/anomic/tools/consoleInterface.java +++ b/source/de/anomic/tools/consoleInterface.java @@ -28,7 +28,7 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.Semaphore; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class consoleInterface extends Thread { diff --git a/source/de/anomic/tools/diskUsage.java b/source/de/anomic/tools/diskUsage.java index 39411f5e0..ec179e0e8 100644 --- a/source/de/anomic/tools/diskUsage.java +++ b/source/de/anomic/tools/diskUsage.java @@ -35,7 +35,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class diskUsage { diff --git a/source/de/anomic/tools/gzip.java b/source/de/anomic/tools/gzip.java index 70de93166..4238d003a 100644 --- a/source/de/anomic/tools/gzip.java +++ b/source/de/anomic/tools/gzip.java @@ -34,7 +34,7 @@ import java.io.OutputStream; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class gzip { diff --git a/source/de/anomic/tools/mediawikiIndex.java b/source/de/anomic/tools/mediawikiIndex.java index 4bdb17f9e..b4149e84b 100644 --- a/source/de/anomic/tools/mediawikiIndex.java +++ b/source/de/anomic/tools/mediawikiIndex.java @@ -59,11 +59,11 @@ import java.util.concurrent.TimeoutException; import de.anomic.data.wiki.wikiCode; import de.anomic.data.wiki.wikiParser; import de.anomic.kelondro.util.ByteBuffer; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParser; import de.anomic.plasma.plasmaParserDocument; import de.anomic.plasma.parser.ParserException; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; /* * this class provides data structures to read a mediawiki dump file in xml format diff --git a/source/de/anomic/tools/tarTools.java b/source/de/anomic/tools/tarTools.java index 46cd610a8..d2b68ac6c 100644 --- a/source/de/anomic/tools/tarTools.java +++ b/source/de/anomic/tools/tarTools.java @@ -35,7 +35,7 @@ import java.util.zip.GZIPInputStream; import com.ice.tar.TarEntry; import com.ice.tar.TarInputStream; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class tarTools { diff --git a/source/de/anomic/urlRedirector/urlRedirectord.java b/source/de/anomic/urlRedirector/urlRedirectord.java index 00c167350..9c4facb6a 100644 --- a/source/de/anomic/urlRedirector/urlRedirectord.java +++ b/source/de/anomic/urlRedirector/urlRedirectord.java @@ -12,13 +12,13 @@ import de.anomic.crawler.CrawlProfile; import de.anomic.data.userDB; import de.anomic.http.httpClient; import de.anomic.http.httpResponseHeader; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaParser; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverCore; import de.anomic.server.serverHandler; import de.anomic.server.serverCore.Session; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class urlRedirectord implements serverHandler, Cloneable { diff --git a/source/de/anomic/xml/RSSReader.java b/source/de/anomic/xml/RSSReader.java index 799ed555a..98bc93a90 100644 --- a/source/de/anomic/xml/RSSReader.java +++ b/source/de/anomic/xml/RSSReader.java @@ -40,7 +40,7 @@ import org.xml.sax.helpers.DefaultHandler; import de.anomic.content.RSSMessage; import de.anomic.kelondro.util.ByteBuffer; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class RSSReader extends DefaultHandler { diff --git a/source/de/anomic/xml/opensearchdescriptionReader.java b/source/de/anomic/xml/opensearchdescriptionReader.java index b23cf2471..16ec7cfa6 100644 --- a/source/de/anomic/xml/opensearchdescriptionReader.java +++ b/source/de/anomic/xml/opensearchdescriptionReader.java @@ -41,7 +41,7 @@ import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import de.anomic.kelondro.util.ByteBuffer; -import de.anomic.kelondro.util.Log; +import de.anomic.yacy.logging.Log; public class opensearchdescriptionReader extends DefaultHandler { diff --git a/source/de/anomic/yacy/dht/Dispatcher.java b/source/de/anomic/yacy/dht/Dispatcher.java index e154d849f..db088144b 100755 --- a/source/de/anomic/yacy/dht/Dispatcher.java +++ b/source/de/anomic/yacy/dht/Dispatcher.java @@ -39,10 +39,10 @@ import de.anomic.kelondro.text.MetadataRepository; import de.anomic.kelondro.text.Segment; import de.anomic.kelondro.text.referencePrototype.WordReference; import de.anomic.kelondro.text.referencePrototype.WordReferenceRow; -import de.anomic.kelondro.util.Log; import de.anomic.server.serverProcessor; import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacySeedDB; +import de.anomic.yacy.logging.Log; public class Dispatcher { diff --git a/source/de/anomic/yacy/dht/PeerSelection.java b/source/de/anomic/yacy/dht/PeerSelection.java index 6f680f55b..76b0780bc 100755 --- a/source/de/anomic/yacy/dht/PeerSelection.java +++ b/source/de/anomic/yacy/dht/PeerSelection.java @@ -30,7 +30,6 @@ import java.util.HashSet; import java.util.Iterator; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.kelondroException; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.Digest; @@ -40,6 +39,7 @@ import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacySeedDB; import de.anomic.yacy.yacyVersion; import de.anomic.yacy.dht.PartitionScheme; +import de.anomic.yacy.logging.Log; /* diff --git a/source/de/anomic/yacy/dht/Transmission.java b/source/de/anomic/yacy/dht/Transmission.java index 50d252b6a..866ae42fd 100644 --- a/source/de/anomic/yacy/dht/Transmission.java +++ b/source/de/anomic/yacy/dht/Transmission.java @@ -38,11 +38,11 @@ import de.anomic.kelondro.text.MetadataRepository; import de.anomic.kelondro.text.Segment; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.text.referencePrototype.WordReference; -import de.anomic.kelondro.util.Log; import de.anomic.server.serverProcessorJob; import de.anomic.yacy.yacyClient; import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacySeedDB; +import de.anomic.yacy.logging.Log; public class Transmission { diff --git a/source/de/anomic/yacy/logging/Log.java b/source/de/anomic/yacy/logging/Log.java new file mode 100644 index 000000000..da8b9ff75 --- /dev/null +++ b/source/de/anomic/yacy/logging/Log.java @@ -0,0 +1,395 @@ +// Log.java +// ------------------------------------- +// (C) by Michael Peter Christen; mc@yacy.net +// first published on http://www.anomic.de +// Frankfurt, Germany, 2004 +// last major change: $LastChangedDate: 2009-01-30 14:48:11 +0000 (Fr, 30 Jan 2009) $ by $LastChangedBy: orbiter $ +// Revision: $LastChangedRevision: 5539 $ +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +package de.anomic.yacy.logging; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.logging.Level; +import java.util.logging.LogManager; +import java.util.logging.Logger; + +public final class Log { + + // log-level categories + public static final int LOGLEVEL_ZERO = Level.OFF.intValue(); // no output at all + public static final int LOGLEVEL_SEVERE = Level.SEVERE.intValue(); // system-level error, internal cause, critical and not fixeable (i.e. inconsistency) + public static final int LOGLEVEL_WARNING = Level.WARNING.intValue(); // uncritical service failure, may require user activity (i.e. input required, wrong authorization) + public static final int LOGLEVEL_CONFIG = Level.CONFIG.intValue(); // regular system status information (i.e. start-up messages) + public static final int LOGLEVEL_INFO = Level.INFO.intValue(); // regular action information (i.e. any httpd request URL) + public static final int LOGLEVEL_FINE = Level.FINE.intValue(); // in-function status debug output + public static final int LOGLEVEL_FINER = Level.FINER.intValue(); // in-function status debug output + public static final int LOGLEVEL_FINEST = Level.FINEST.intValue(); // in-function status debug output + + // these categories are also present as character tokens + public static final char LOGTOKEN_ZERO = 'Z'; + public static final char LOGTOKEN_SEVERE = 'E'; + public static final char LOGTOKEN_WARNING = 'W'; + public static final char LOGTOKEN_CONFIG = 'S'; + public static final char LOGTOKEN_INFO = 'I'; + public static final char LOGTOKEN_FINE = 'D'; + public static final char LOGTOKEN_FINER = 'D'; + public static final char LOGTOKEN_FINEST = 'D'; + + private final Logger theLogger; + + public Log(final String appName) { + this.theLogger = Logger.getLogger(appName); + //this.theLogger.setLevel(Level.FINEST); // set a default level + } + + public void setLevel(final Level newLevel) { + this.theLogger.setLevel(newLevel); + } + + public void logSevere(final String message) { + enQueueLog(this.theLogger, Level.SEVERE, message); + } + + public void logSevere(final String message, final Throwable thrown) { + enQueueLog(this.theLogger, Level.SEVERE, message, thrown); + } + + public boolean isSevere() { + return this.theLogger.isLoggable(Level.SEVERE); + } + + public void logWarning(final String message) { + enQueueLog(this.theLogger, Level.WARNING, message); + } + + public void logWarning(final String message, final Throwable thrown) { + enQueueLog(this.theLogger, Level.WARNING, message, thrown); + } + + public boolean isWarning() { + return this.theLogger.isLoggable(Level.WARNING); + } + + public void logConfig(final String message) { + enQueueLog(this.theLogger, Level.CONFIG, message); + } + + public void logConfig(final String message, final Throwable thrown) { + enQueueLog(this.theLogger, Level.CONFIG, message, thrown); + } + + public boolean isConfig() { + return this.theLogger.isLoggable(Level.CONFIG); + } + + public void logInfo(final String message) { + enQueueLog(this.theLogger, Level.INFO, message); + } + + public void logInfo(final String message, final Throwable thrown) { + enQueueLog(this.theLogger, Level.INFO, message, thrown); + } + + public boolean isInfo() { + return this.theLogger.isLoggable(Level.INFO); + } + + public void logFine(final String message) { + enQueueLog(this.theLogger, Level.FINE, message); + } + + public void logFine(final String message, final Throwable thrown) { + enQueueLog(this.theLogger, Level.FINE, message, thrown); + } + + public boolean isFine() { + return this.theLogger.isLoggable(Level.FINE); + } + + public void logFiner(final String message) { + enQueueLog(this.theLogger, Level.FINER, message); + } + + public void logFiner(final String message, final Throwable thrown) { + enQueueLog(this.theLogger, Level.FINER, message, thrown); + } + + public boolean isFiner() { + return this.theLogger.isLoggable(Level.FINER); + } + + public void logFinest(final String message) { + enQueueLog(this.theLogger, Level.FINEST, message); + } + + public void logFinest(final String message, final Throwable thrown) { + enQueueLog(this.theLogger, Level.FINEST, message, thrown); + } + + public boolean isFinest() { + return this.theLogger.isLoggable(Level.FINEST); + } + + public boolean isLoggable(final Level level) { + return this.theLogger.isLoggable(level); + } + + + // static log messages + public static void logSevere(final String appName, final String message) { + enQueueLog(appName, Level.SEVERE, message); + } + public static void logSevere(final String appName, final String message, final Throwable thrown) { + enQueueLog(appName, Level.SEVERE, message, thrown); + } + + public static void logWarning(final String appName, final String message) { + enQueueLog(appName, Level.WARNING, message); + } + public static void logWarning(final String appName, final String message, final Throwable thrown) { + enQueueLog(appName, Level.WARNING, message, thrown); + } + + public static void logConfig(final String appName, final String message) { + enQueueLog(appName, Level.CONFIG, message); + } + public static void logConfig(final String appName, final String message, final Throwable thrown) { + enQueueLog(appName, Level.CONFIG, message, thrown); + } + + public static void logInfo(final String appName, final String message) { + enQueueLog(appName, Level.INFO, message); + } + public static void logInfo(final String appName, final String message, final Throwable thrown) { + enQueueLog(appName, Level.INFO, message, thrown); + } + + public static void logFine(final String appName, final String message) { + enQueueLog(appName, Level.FINE, message); + } + public static void logFine(final String appName, final String message, final Throwable thrown) { + enQueueLog(appName, Level.FINE, message, thrown); + } + public static boolean isFine(final String appName) { + return Logger.getLogger(appName).isLoggable(Level.FINE); + } + + public static void logFiner(final String appName, final String message) { + enQueueLog(appName, Level.FINER, message); + } + public static void logFiner(final String appName, final String message, final Throwable thrown) { + enQueueLog(appName, Level.FINER, message, thrown); + } + + public static void logFinest(final String appName, final String message) { + enQueueLog(appName, Level.FINEST, message); + } + public static void logFinest(final String appName, final String message, final Throwable thrown) { + enQueueLog(appName, Level.FINEST, message, thrown); + } + public static boolean isFinest(final String appName) { + return Logger.getLogger(appName).isLoggable(Level.FINEST); + } + + private static void enQueueLog(Logger logger, Level level, String message, final Throwable thrown) { + if (logRunnerThread == null || !logRunnerThread.isAlive()) { + logger.log(level, message, thrown); + } else { + try { + logQueue.put(new logEntry(logger, level, message, thrown)); + } catch (InterruptedException e) { + logger.log(level, message, thrown); + } + } + } + + private static void enQueueLog(Logger logger, Level level, String message) { + if (logRunnerThread == null || !logRunnerThread.isAlive()) { + logger.log(level, message); + } else { + try { + logQueue.put(new logEntry(logger, level, message)); + } catch (InterruptedException e) { + logger.log(level, message); + } + } + } + + private static void enQueueLog(String loggername, Level level, String message, final Throwable thrown) { + if (logRunnerThread == null || !logRunnerThread.isAlive()) { + Logger.getLogger(loggername).log(level, message, thrown); + } else { + try { + logQueue.put(new logEntry(loggername, level, message, thrown)); + } catch (InterruptedException e) { + Logger.getLogger(loggername).log(level, message, thrown); + } + } + } + + private static void enQueueLog(String loggername, Level level, String message) { + if (logRunnerThread == null || !logRunnerThread.isAlive()) { + Logger.getLogger(loggername).log(level, message); + } else { + try { + logQueue.put(new logEntry(loggername, level, message)); + } catch (InterruptedException e) { + Logger.getLogger(loggername).log(level, message); + } + } + } + + protected static class logEntry { + public final Logger logger; + public final String loggername; + public final Level level; + public final String message; + public final Throwable thrown; + public logEntry(Logger logger, Level level, String message, final Throwable thrown) { + this.logger = logger; + this.loggername = null; + this.level = level; + this.message = message; + this.thrown = thrown; + } + public logEntry(Logger logger, Level level, String message) { + this.logger = logger; + this.loggername = null; + this.level = level; + this.message = message; + this.thrown = null; + } + public logEntry(String loggername, Level level, String message, final Throwable thrown) { + this.logger = null; + this.loggername = loggername; + this.level = level; + this.message = message; + this.thrown = thrown; + } + public logEntry(String loggername, Level level, String message) { + this.logger = null; + this.loggername = loggername; + this.level = level; + this.message = message; + this.thrown = null; + } + public logEntry() { + this.logger = null; + this.loggername = null; + this.level = null; + this.message = null; + this.thrown = null; + } + } + + private static logEntry poison = new logEntry(); + private static BlockingQueue logQueue = new LinkedBlockingQueue(); + private static logRunner logRunnerThread = null; + + protected static class logRunner extends Thread { + + public void run() { + logEntry entry; + try { + while ((entry = logQueue.take()) != poison) { + if (entry.logger == null) { + assert entry.loggername != null; + if (entry.thrown == null) { + Logger.getLogger(entry.loggername).log(entry.level, entry.message); + } else { + Logger.getLogger(entry.loggername).log(entry.level, entry.message, entry.thrown); + } + } else { + assert entry.loggername == null; + if (entry.thrown == null) { + entry.logger.log(entry.level, entry.message); + } else { + entry.logger.log(entry.level, entry.message, entry.thrown); + } + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + + } + } + + public static final void configureLogging(final File homePath, final File loggingConfigFile) throws SecurityException, FileNotFoundException, IOException { + FileInputStream fileIn = null; + try { + System.out.println("STARTUP: Trying to load logging configuration from file " + loggingConfigFile.toString()); + fileIn = new FileInputStream(loggingConfigFile); + + // loading the logger configuration from file + final LogManager logManager = LogManager.getLogManager(); + logManager.readConfiguration(fileIn); + + // creating the logging directory + final String logPattern = logManager.getProperty("java.util.logging.FileHandler.pattern"); + int stripPos = logPattern.lastIndexOf('/'); + if (stripPos < 0) stripPos = logPattern.lastIndexOf(File.pathSeparatorChar); + File log = new File(logPattern.substring(0, stripPos)); + if (!log.isAbsolute()) log = new File(homePath, log.getPath()); + if (!log.canRead()) log.mkdir(); + + // TODO: changing the pattern settings for the file handlers + + // generating the root logger + /*Logger logger =*/ Logger.getLogger(""); + +// System.setOut(new PrintStream(new LoggerOutputStream(Logger.getLogger("STDOUT"), Level.FINEST))); +// System.setErr(new PrintStream(new LoggerOutputStream(Logger.getLogger("STDERR"), Level.SEVERE))); + logRunnerThread = new logRunner(); + logRunnerThread.start(); + } finally { + if (fileIn != null) try {fileIn.close();}catch(final Exception e){} + } + } + + public static void shutdown() { + if (logRunnerThread == null || !logRunnerThread.isAlive()) return; + try { + logQueue.put(poison); + logRunnerThread.join(10000); + } catch (InterruptedException e) { + } + } + + public static final String format(final String s, int n, final int fillChar) { + final int l = s.length(); + if (l >= n) return s; + final StringBuilder sb = new StringBuilder(l + n); + for (final int i = l + n; i > n; n--) sb.insert(0, fillChar); + return sb.toString(); + } + + public static final boolean allZero(final byte[] a) { + return allZero(a, 0, a.length); + } + + public static final boolean allZero(final byte[] a, final int astart, final int alength) { + for (int i = 0; i < alength; i++) if (a[astart + i] != 0) return false; + return true; + } + +} diff --git a/source/de/anomic/yacy/logging/SimpleLogFormatter.java b/source/de/anomic/yacy/logging/SimpleLogFormatter.java index f6601e9ba..611949c34 100644 --- a/source/de/anomic/yacy/logging/SimpleLogFormatter.java +++ b/source/de/anomic/yacy/logging/SimpleLogFormatter.java @@ -33,7 +33,6 @@ import java.util.Date; import java.util.logging.LogRecord; import java.util.logging.SimpleFormatter; -import de.anomic.kelondro.util.Log; public class SimpleLogFormatter extends SimpleFormatter { diff --git a/source/de/anomic/yacy/yacyCore.java b/source/de/anomic/yacy/yacyCore.java index 4944707cf..25a612fa3 100644 --- a/source/de/anomic/yacy/yacyCore.java +++ b/source/de/anomic/yacy/yacyCore.java @@ -53,12 +53,12 @@ import java.util.Map; import de.anomic.content.RSSMessage; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverCore; import de.anomic.server.serverSemaphore; import de.anomic.xml.RSSFeed; import de.anomic.yacy.dht.PeerSelection; +import de.anomic.yacy.logging.Log; public class yacyCore { diff --git a/source/de/anomic/yacy/yacyPeerActions.java b/source/de/anomic/yacy/yacyPeerActions.java index 7dd0bf70e..e514aa8da 100644 --- a/source/de/anomic/yacy/yacyPeerActions.java +++ b/source/de/anomic/yacy/yacyPeerActions.java @@ -29,9 +29,9 @@ import java.util.HashMap; import de.anomic.content.RSSMessage; import de.anomic.kelondro.util.DateFormatter; -import de.anomic.kelondro.util.Log; import de.anomic.server.serverCodings; import de.anomic.xml.RSSFeed; +import de.anomic.yacy.logging.Log; public class yacyPeerActions { diff --git a/source/de/anomic/yacy/yacyRelease.java b/source/de/anomic/yacy/yacyRelease.java index ba6177bd6..57e4db2a7 100644 --- a/source/de/anomic/yacy/yacyRelease.java +++ b/source/de/anomic/yacy/yacyRelease.java @@ -51,7 +51,6 @@ import de.anomic.http.httpResponse; import de.anomic.http.httpResponseHeader; import de.anomic.http.httpRequestHeader; import de.anomic.kelondro.order.Base64Order; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverCharBuffer; @@ -60,6 +59,7 @@ import de.anomic.server.serverSystem; import de.anomic.tools.CryptoLib; import de.anomic.tools.SignatureOutputStream; import de.anomic.tools.tarTools; +import de.anomic.yacy.logging.Log; public final class yacyRelease extends yacyVersion { diff --git a/source/de/anomic/yacy/yacySearch.java b/source/de/anomic/yacy/yacySearch.java index 235f5f449..fa5c6b525 100644 --- a/source/de/anomic/yacy/yacySearch.java +++ b/source/de/anomic/yacy/yacySearch.java @@ -36,11 +36,11 @@ import de.anomic.data.Blacklist; import de.anomic.kelondro.order.Bitfield; import de.anomic.kelondro.text.Segment; import de.anomic.kelondro.util.ScoreCluster; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSearchRankingProcess; import de.anomic.plasma.plasmaSearchRankingProfile; import de.anomic.search.Query; import de.anomic.yacy.dht.PeerSelection; +import de.anomic.yacy.logging.Log; public class yacySearch extends Thread { diff --git a/source/de/anomic/yacy/yacySeedDB.java b/source/de/anomic/yacy/yacySeedDB.java index 63eeceebd..b66e890e7 100644 --- a/source/de/anomic/yacy/yacySeedDB.java +++ b/source/de/anomic/yacy/yacySeedDB.java @@ -50,7 +50,6 @@ import de.anomic.kelondro.blob.BLOBHeap; import de.anomic.kelondro.blob.MapDataMining; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.util.kelondroException; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaHTCache; import de.anomic.server.serverCore; @@ -58,6 +57,7 @@ import de.anomic.server.serverDomains; import de.anomic.server.serverSwitch; import de.anomic.yacy.dht.PartitionScheme; import de.anomic.yacy.dht.VerticalWordPartitionScheme; +import de.anomic.yacy.logging.Log; public final class yacySeedDB implements httpdAlternativeDomainNames { diff --git a/source/de/anomic/yacy/yacyVersion.java b/source/de/anomic/yacy/yacyVersion.java index fbaf7a5d8..9ccbc9be6 100644 --- a/source/de/anomic/yacy/yacyVersion.java +++ b/source/de/anomic/yacy/yacyVersion.java @@ -5,8 +5,8 @@ import java.util.Comparator; import java.util.regex.Matcher; import java.util.regex.Pattern; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaSwitchboard; +import de.anomic.yacy.logging.Log; public class yacyVersion implements Comparator, Comparable { diff --git a/source/de/anomic/ymage/ymageOSM.java b/source/de/anomic/ymage/ymageOSM.java index 2fbb2d2cc..4dc526b91 100644 --- a/source/de/anomic/ymage/ymageOSM.java +++ b/source/de/anomic/ymage/ymageOSM.java @@ -35,11 +35,11 @@ import java.net.MalformedURLException; import javax.imageio.ImageIO; -import de.anomic.kelondro.util.Log; import de.anomic.plasma.plasmaHTCache; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.parser.Document; import de.anomic.yacy.yacyURL; +import de.anomic.yacy.logging.Log; public class ymageOSM { diff --git a/source/migration.java b/source/migration.java index 0dc9011db..6608ff692 100644 --- a/source/migration.java +++ b/source/migration.java @@ -26,10 +26,10 @@ import de.anomic.data.listManager; import de.anomic.http.httpd; import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.Digest; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboardConstants; +import de.anomic.yacy.logging.Log; public class migration { //SVN constants diff --git a/source/yacy.java b/source/yacy.java index 57d4536f9..c454d3d2a 100644 --- a/source/yacy.java +++ b/source/yacy.java @@ -65,7 +65,6 @@ import de.anomic.kelondro.text.referencePrototype.WordReference; import de.anomic.kelondro.util.DateFormatter; import de.anomic.kelondro.util.MemoryControl; import de.anomic.kelondro.util.ScoreCluster; -import de.anomic.kelondro.util.Log; import de.anomic.kelondro.util.FileUtils; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboardConstants; @@ -81,6 +80,7 @@ import de.anomic.yacy.Tray; import de.anomic.yacy.yacyURL; import de.anomic.yacy.yacyRelease; import de.anomic.yacy.yacyVersion; +import de.anomic.yacy.logging.Log; /** * This is the main class of YaCy. Several threads are started from here: