Thank you. I updated the config.xml instead of config.xml.template file. I have updated the target to logwindow in ~/src/config/config.xml to be logwindow. Still I don't see any new button. Please find below the full text from
~/src/config/confnig.xml, but I don't see any log button. following also is the full text from LogUril.as, which I believe should be clearly set to logwindow instead of trace:
<?xml version="1.0" ?>
<config>
<localeversion suppressWarning="false">0.9.0</localeversion>
<version>VERSION</version>
<help url="
http://10.0.2.15/help.html"/>
<javaTest url="
http://10.0.2.15/testjava.html"/>
<porttest host="10.0.2.15" application="video/portTest" timeout="10000"/>
<bwMon server="10.0.2.15" application="video/bwTest"/>
<application uri="rtmp://
10.0.2.15/bigbluebutton" host="
http://10.0.2.15/bigbluebutton/api/enter"/>
<language userSelectionEnabled="true" />
<skinning enabled="true" url="
http://10.0.2.15/client/branding/css/BBBDefault.css.swf" />
<shortcutKeys showButton="true" />
<browserVersions chrome="CHROME_VERSION" firefox="FIREFOX_VERSION" flash="FLASH_VERSION" java="1.7.0_51" />
<layout showLogButton="true" defaultLayout="bbb.layout.name.defaultlayout"
showToolbar="true" showFooter="true" showMeetingName="true" showHelpButton="true"
showLogoutWindow="true" showLayoutTools="true" confirmLogout="true"
showRecordingNotification="true"/>
<meeting muteOnStart="false" />
<logging enabled="true" target="trace" level="debug" format="{dateUTC} {time} :: {name} :: [{logLevel}] {message}" uri="
http://10.0.2.15"/>
<lock disableCamForLockedUsers="false" disableMicForLockedUsers="false" disablePrivateChatForLockedUsers="false"
disablePublicChatForLockedUsers="false" lockLayoutForLockedUsers="false" lockOnJoin="true" lockOnJoinConfigurable="false"/>
<modules>
<module name="ChatModule" url="
http://10.0.2.15/client/ChatModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
dependsOn="UsersModule"
privateEnabled="true"
fontSize="12"
position="top-right"
baseTabIndex="701"
colorPickerIsVisible="false"
maxMessageLength="1024"
/>
<module name="UsersModule" url="
http://10.0.2.15/client/UsersModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
allowKickUser="true"
enableEmojiStatus="true"
enableSettingsButton="true"
baseTabIndex="301"
/>
<module name="TimerModule" url="
http://10.0.2.15/client/TimerModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
baseTabIndex="101"
/>
<module name="DeskShareModule"
url="
http://10.0.2.15/client/DeskShareModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/deskShare"
publishURI="10.0.2.15"
useTLS="false"
showButton="true"
autoStart="false"
autoFullScreen="false"
baseTabIndex="201"
/>
<module name="PhoneModule" url="
http://10.0.2.15/client/PhoneModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/sip"
autoJoin="true"
listenOnlyMode="true"
presenterShareOnly="false"
skipCheck="false"
showButton="true"
enabledEchoCancel="true"
useWebRTCIfAvailable="true"
showPhoneOption="false"
echoTestApp="9196"
dependsOn="UsersModule"
/>
<module name="VideoconfModule" url="
http://10.0.2.15/client/VideoconfModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/video"
dependson = "UsersModule"
baseTabIndex="401"
presenterShareOnly = "false"
controlsForPresenter = "false"
autoStart = "false"
skipCamSettingsCheck="false"
showButton = "true"
showCloseButton = "true"
publishWindowVisible = "true"
viewerWindowMaxed = "false"
viewerWindowLocation = "top"
smoothVideo="false"
applyConvolutionFilter="false"
convolutionFilter="-1, 0, -1, 0, 6, 0, -1, 0, -1"
filterBias="0"
filterDivisor="4"
displayAvatar = "false"
focusTalking = "false"
glowColor = "0x4A931D"
glowBlurSize = "30.0"
priorityRatio = "0.67"
/>
<module name="WhiteboardModule" url="
http://10.0.2.15/client/WhiteboardModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
dependsOn="PresentModule"
baseTabIndex="601"
whiteboardAccess="presenter"
keepToolbarVisible="false"
/>
<module name="PollingModule" url="
http://10.0.2.15/client/PollingModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
dependsOn="PresentModule"
/>
<module name="PresentModule" url="
http://10.0.2.15/client/PresentModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
host="
http://10.0.2.15"
showPresentWindow="true"
showWindowControls="true"
openExternalFileUploadDialog="false"
dependsOn="UsersModule"
baseTabIndex="501"
maxFileSize="30"
/>
<module name="LayoutModule" url="
http://10.0.2.15/client/LayoutModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
layoutConfig="
http://10.0.2.15/client/conf/layout.xml"
enableEdit="false"
/>
<!--
<module name="NotesModule" url="
http://10.0.2.15/client/NotesModule.swf?v=VERSION"
saveURL="
http://10.0.2.15"
position="top-left"
/>
<module name="BroadcastModule" url="
http://10.0.2.15/client/BroadcastModule.swf?v=VERSION"
uri="rtmp://
10.0.2.15/bigbluebutton"
streamsUri="
http://10.0.2.15/streams.xml"
position="top-left"
showStreams="true"
autoPlay="false"
dependsOn="UsersModule"
/>
-->
</modules>
</config>
LogUtil.as:
/**
* BigBlueButton open source conferencing system -
http://www.bigbluebutton.org/ *
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation; either version 3.0 of the License, or (at your option) any later
* version.
*
* BigBlueButton 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along
* with BigBlueButton; if not, see <
http://www.gnu.org/licenses/>.
*
*/
package org.bigbluebutton.common {
import org.as3commons.logging.api.LOGGER_FACTORY;
import org.as3commons.logging.setup.LevelTargetSetup;
import org.as3commons.logging.setup.LogSetupLevel;
import org.as3commons.logging.setup.target.IFormattingLogTarget;
import org.as3commons.logging.setup.target.TraceTarget;
import org.bigbluebutton.core.BBB;
import org.bigbluebutton.util.logging.JSNLogTarget;
import org.bigbluebutton.util.logging.LogWindowTarget;
import org.bigbluebutton.util.logging.ServerLogTarget;
/**
* The logging can be configured in config.xml. The <logging> tag can be configured like the following
*
* <logging enabled="true" target="trace" level="info" uri="
http://HOST"/>
* - enabled : true or false
* - target : + trace : write logs using trace function
* + logwindow : write logs in LogWindow view
* + server : send logs to the server
* + jsnlog : uses jsnlog javascript library (experimental)
* - level : none|fatal_only|fatal|error_only|error|warn_only|warn|info_only|info|debug_only|debug|all
* for more information about "level" please check the org.as3commons.logging.setup.LogSetupLevel class
* - format : + {date} : The date in the format YYYY/MM/DD
* + {dateUTC} : he UTC date in the format YYYY/MM/DD
* + {gmt} : The time offset of the statement to the Greenwich mean time in the format GMT+9999
* + {logLevel} : The level of the log statement (example: DEBUG)
* + {logTime} : The UTC time in the format HH:MM:SS.0MS
* + {message} : The message of the logger
* + {message_dqt}: The message of the logger, double quote escaped.
* + {name} : The name of the logger
* + {time} : The time in the format H:M:
S.MS * + {timeUTC} : The UTC time in the format H:M:
S.MS * + {shortName} : The short name of the logger
* + {shortSWF} : The SWF file name
* + {swf} : The full SWF path
* + {person} : The Person that wrote this statement
* + {atPerson} : he Person that wrote this statement with the 'at' prefix
* - uri : HOST will contain the URL of the logging server
*/
public class LogUtil {
public static const TRACE:String = "jsnlog";
public static const LOG_WINDOW:String = "logwindow";
public static const SERVER:String = "server";
public static const JSNLOG:String = "jsnlog";
private static const DEFAULT_FORMAT:String = "{dateUTC} {time} :: {name} :: [{logLevel}] {message}";
private static var loggingEnabled:Boolean;
/* private static var logLevel:String = "info"; */
private static var logLevel:String = "debug";
private static var loggingTargetName:String = "logwindow"; /* "trace"; */
/**
* Initialises logging from the application configuration.
*/
public static function initLogging(force:Boolean = false):void {
var logTarget:IFormattingLogTarget;
var logFormat:String = DEFAULT_FORMAT;
if (force) {
logTarget = new TraceTarget();
} else {
var lxml:XML = BBB.initConfigManager().config.logging;
if (lxml.@enabled != undefined) {
loggingEnabled = (lxml.@enabled.toString().toUpperCase() == "TRUE") ? true : false;
}
if (lxml.@target != undefined) {
loggingTargetName = lxml.@target.toString().toLowerCase();
}
if (lxml.@level != undefined) {
logLevel = String(lxml.@level).toUpperCase();
}
if (lxml.@format != undefined) {
logFormat = lxml.@format.toString();
}
if (loggingEnabled) {
switch (loggingTargetName) {
case TRACE:
logTarget = new TraceTarget();
break;
case LOG_WINDOW:
logTarget = new LogWindowTarget();
break;
case SERVER:
logTarget = new ServerLogTarget(String(lxml.@uri));
break;
case JSNLOG:
logTarget = new JSNLogTarget();
break;
default:
// no logging target set
break;
}
}
}
if (logTarget) {
logTarget.format = logFormat;
LOGGER_FACTORY.setup = new LevelTargetSetup(logTarget, LogSetupLevel[logLevel.toUpperCase()]);
} else {
disableLogging();
}
}
/**
* Disables logging across the applicatio.
*/
public static function disableLogging():void {
LOGGER_FACTORY.setup = null;