<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.b-kaempgen.de/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.b-kaempgen.de/index.php?action=history&amp;feed=atom&amp;title=Logging_Olap4ld</id>
		<title>Logging Olap4ld - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.b-kaempgen.de/index.php?action=history&amp;feed=atom&amp;title=Logging_Olap4ld"/>
		<link rel="alternate" type="text/html" href="http://www.b-kaempgen.de/index.php?title=Logging_Olap4ld&amp;action=history"/>
		<updated>2026-05-25T04:31:51Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.22.2</generator>

	<entry>
		<id>http://www.b-kaempgen.de/index.php?title=Logging_Olap4ld&amp;diff=563&amp;oldid=prev</id>
		<title>Benedikt Kämpgen: 1 revision: From LD-Cubes</title>
		<link rel="alternate" type="text/html" href="http://www.b-kaempgen.de/index.php?title=Logging_Olap4ld&amp;diff=563&amp;oldid=prev"/>
				<updated>2023-01-04T13:24:16Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision: From LD-Cubes&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:24, 4 January 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Benedikt Kämpgen</name></author>	</entry>

	<entry>
		<id>http://www.b-kaempgen.de/index.php?title=Logging_Olap4ld&amp;diff=562&amp;oldid=prev</id>
		<title>Benedikt Kämpgen: /* How to make sense of the logging file? */</title>
		<link rel="alternate" type="text/html" href="http://www.b-kaempgen.de/index.php?title=Logging_Olap4ld&amp;diff=562&amp;oldid=prev"/>
				<updated>2014-09-21T04:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;How to make sense of the logging file?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Info==&lt;br /&gt;
&lt;br /&gt;
===Where to locate the logging file?===&lt;br /&gt;
* logging.properties may be located: For a Java program run from Eclipse directly, it may be in the folder of the project; for a running dynamic web project in Eclipse, it may be in the Eclipse Directory (e.g., /home/benedikt/Programs/eclipse_juno_jdk_20120721/); for other Tomcat occasions, it may be in the Server root which you can ask by going to Servers -&amp;gt; Open a server and look for server directory (or similar).&lt;br /&gt;
* Session Logging: Currently, every created connection creates one log file. Problem: Since we use Xmla asynchronously, we get a log file for every call of the interface.&lt;br /&gt;
* In XmlaHandler.java of xmlaserver, a sessionId can be given&lt;br /&gt;
* Currently, every connection has user [null] and session [&amp;lt;no_session&amp;gt;]&lt;br /&gt;
* We could create a map with connections and use the one that is requested.&lt;br /&gt;
* However, how to ask for a specific session?&lt;br /&gt;
* Currently, both seems not to be implemented neither in xmla4js and xmlaserver.&lt;br /&gt;
* For test cases to log, we need to run '''Olap4ldUtil.prepareLogging();'''.&lt;br /&gt;
&lt;br /&gt;
===How to make sense of the logging file?===&lt;br /&gt;
* LDCX_Performance_Evaluation_LogParse_Experiments.java can parse the log files and return it as a SQLite database file (uses exrunner [https://github.com/gladwig/exrunner] by Günter Ladwig).&lt;br /&gt;
* Watch out&lt;br /&gt;
** Setup logging file to append or not append log files.&lt;br /&gt;
** Set Logging Level to INFO&lt;br /&gt;
* Example SQLite query for averages over querytime and queryname: sqlite3 -header /home/benedikt/Workspaces/Git-Repositories/olap4ld/OLAP4LD-trunk/testresources/bottleneck.db 'select querytime, queryname, avg(triplescount), avg(lookupscount), avg(loadvalidatedatasetstime), avg(executemetadataqueriestime), avg(generatelogicalqueryplantime), avg(generatephysicalqueryplantime), avg(executephysicalqueryplantime) from bottleneck group by queryname order by triplescount, queryname desc'&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Status 2013-09-28===&lt;br /&gt;
* Currently, we set up logging per Driver. However, the more interesting part of olap4ld are &amp;quot;connections&amp;quot; (Olap4ldConnection). &lt;br /&gt;
* Possible solution:&lt;br /&gt;
** Instead of simply using java.util.logging.FileHandler, java.util.logging.ConsoleHandler, I also create own handler and add the current time to it.&lt;br /&gt;
* With Tomcat, this did not really work, so we also added our own log handlers. &lt;br /&gt;
* NO PERFECT SOLUTION, here.&lt;br /&gt;
&lt;br /&gt;
===Status 2013-09-26===&lt;br /&gt;
As described in Galileo Java Book [http://openbook.galileocomputing.de/java7/1507_20_001.html#dodtpf59fb46c-8f8b-4f81-af07-6ef529d72da9], we allow configuration with an external file logging.properties.&lt;br /&gt;
&lt;br /&gt;
* logging.properties&lt;br /&gt;
** We support three logging levels for Console and File handler: WARNING (only the possible error logs), INFO (monitoring usage of olap4ld), CONFIG (logging everything)&lt;br /&gt;
** we log in olap4ld&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler&lt;br /&gt;
&lt;br /&gt;
java.util.logging.ConsoleHandler.level=INFO&lt;br /&gt;
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter&lt;br /&gt;
&lt;br /&gt;
java.util.logging.FileHandler.level=INFO&lt;br /&gt;
java.util.logging.FileHandler.pattern=olap4ld.log&lt;br /&gt;
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* In Java Code, we had to set the system-wide logging level to Level.ALL, so that the default level (INFO) is overridden and can be restricted by our logging.properties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
		// Setup logging&lt;br /&gt;
		Olap4ldUtil._log = Logger.getLogger(&amp;quot;Olap4ldDriver&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		System.setProperty( &amp;quot;java.util.logging.config.file&amp;quot;, &amp;quot;logging.properties&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		try { LogManager.getLogManager().readConfiguration(); }&lt;br /&gt;
		catch ( Exception e ) { e.printStackTrace(); }&lt;br /&gt;
		&lt;br /&gt;
		Olap4ldUtil._log.setLevel(Level.ALL);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benedikt Kämpgen</name></author>	</entry>

	</feed>