Index: src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizard.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizard.java	(revision 0)
+++ src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizard.java	(revision 0)
@@ -0,0 +1,34 @@
+package org.jboss.tools.openshift.express.internal.ui.wizard;
+
+import org.eclipse.jface.wizard.Wizard;
+
+import com.openshift.client.IApplication;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class TailFilesWizard extends Wizard {
+
+	private final TailFilesWizardPageModel model;
+
+	public TailFilesWizard(final IApplication app) {
+		setNeedsProgressMonitor(true);
+		setWindowTitle("Tail Files");
+		this.model = new TailFilesWizardPageModel(app);
+	}
+
+	@Override
+	public boolean performFinish() {
+		return true;
+	}
+
+	@Override
+	public void addPages() {
+		addPage(new TailFilesWizardPage(model, this));
+	}
+	
+	public String getFilePattern() {
+		return model.getFilePattern();
+	}
+
+}
\ No newline at end of file
Index: src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizardPageModel.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizardPageModel.java	(revision 0)
+++ src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizardPageModel.java	(revision 0)
@@ -0,0 +1,40 @@
+package org.jboss.tools.openshift.express.internal.ui.wizard;
+
+import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
+
+import com.openshift.client.IApplication;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class TailFilesWizardPageModel extends ObservableUIPojo {
+
+	public static final String PROPERTY_FILE_PATTERN = "filePattern";
+	
+	private final IApplication application;
+	
+	private String filePattern = null;
+	
+	public TailFilesWizardPageModel(final IApplication app) {
+		this.application = app;
+	}
+
+	public void setFilePattern(final String filePattern) {
+		firePropertyChange(
+				PROPERTY_FILE_PATTERN, this.filePattern, this.filePattern = filePattern);
+	}
+
+	public String getFilePattern() {
+		return this.filePattern;
+	}
+
+	public void resetFilePattern() {
+		setFilePattern("-f -n 100 " + getApplication().getCartridge().getName() + "/logs/*");
+		
+	}
+
+	public IApplication getApplication() {
+		return application;
+	}
+	
+}
\ No newline at end of file
Index: src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizardPage.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizardPage.java	(revision 0)
+++ src/org/jboss/tools/openshift/express/internal/ui/wizard/TailFilesWizardPage.java	(revision 0)
@@ -0,0 +1,111 @@
+package org.jboss.tools.openshift.express.internal.ui.wizard;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.common.ui.databinding.ValueBindingBuilder;
+import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
+import org.jboss.tools.openshift.express.internal.ui.wizard.AbstractOpenShiftWizardPage;
+
+/**
+ * @author Xavier Coulon
+ * 
+ */
+public class TailFilesWizardPage extends AbstractOpenShiftWizardPage {
+
+	private final TailFilesWizardPageModel pageModel;
+
+	public TailFilesWizardPage(final TailFilesWizardPageModel pageModel, final IWizard wizard) {
+		super("Tail Log Files", "This will run tail on your OpenShift application '" + pageModel.getApplication().getName() +
+				"'.\nYou can use the defaults or change the tail options.",
+				"TailFilePage", wizard);
+		this.pageModel = pageModel;
+	}
+
+	@Override
+	protected void doCreateControls(Composite parent, DataBindingContext dbc) {
+		GridLayoutFactory.fillDefaults().margins(6, 6).applyTo(parent);
+		Composite container = new Composite(parent, SWT.NONE);
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(container);
+		GridLayoutFactory.fillDefaults().numColumns(3).applyTo(container);
+
+		// label
+		final Label filePatternLabel = new Label(container, SWT.NONE);
+		filePatternLabel.setText("Tail options:");
+		GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false)
+				.applyTo(filePatternLabel);
+		// input text field
+		final Text filePatternText = new Text(container, SWT.BORDER);
+		GridDataFactory.fillDefaults()
+				.align(SWT.FILL, SWT.CENTER).span(1, 1).grab(true, false).applyTo(filePatternText);
+		IObservableValue existingAppNameTextObservable = WidgetProperties.text(SWT.Modify).observe(filePatternText);
+		IObservableValue existingAppNameModelObservable = BeanProperties.value(
+				TailFilesWizardPageModel.PROPERTY_FILE_PATTERN).observe(pageModel);
+		ValueBindingBuilder.bind(existingAppNameTextObservable).to(existingAppNameModelObservable).in(dbc);
+		// reset button (in case user inputs something and wants/needs to revert)
+		final Button resetButton = new Button(container, SWT.PUSH);
+		resetButton.setText("Reset");
+		GridDataFactory.fillDefaults()
+				.span(1, 1).align(SWT.FILL, SWT.CENTER).grab(false, false).applyTo(resetButton);
+		resetButton.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				pageModel.resetFilePattern();
+			}
+		});
+	}
+
+	// private SelectionListener onCheckAll() {
+	// return new SelectionAdapter() {
+	//
+	// @Override
+	// public void widgetSelected(SelectionEvent e) {
+	// viewer.setAllChecked(true);
+	// try {
+	// addJenkinsCartridge(IEmbeddedCartridge.JENKINS_14);
+	// } catch (OpenShiftException ex) {
+	// OpenShiftUIActivator.log("Could not select jenkins cartridge", ex);
+	// } catch (SocketTimeoutException ex) {
+	// OpenShiftUIActivator.log("Could not select jenkins cartridge", ex);
+	// }
+	// }
+	//
+	// };
+	// }
+
+	// private SelectionListener onUncheckAll() {
+	// return new SelectionAdapter() {
+	//
+	// @Override
+	// public void widgetSelected(SelectionEvent e) {
+	// viewer.setAllChecked(false);
+	// }
+	//
+	// };
+	// }
+
+	private void resetFilePatternText() {
+		pageModel.resetFilePattern();
+	}
+	
+	@Override
+	protected void onPageActivated(DataBindingContext dbc) {
+		try {
+			resetFilePatternText();
+		} catch (Exception e) {
+			Logger.error("Could not reset File Pattern text field", e);
+		}
+	}
+
+}
\ No newline at end of file
Index: src/org/jboss/tools/openshift/express/internal/ui/action/TailServerLogAction.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/action/TailServerLogAction.java	(revision 44651)
+++ src/org/jboss/tools/openshift/express/internal/ui/action/TailServerLogAction.java	(working copy)
@@ -12,12 +12,14 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
 import org.eclipse.jgit.transport.CredentialsProvider;
 import org.eclipse.jgit.transport.RemoteSession;
 import org.eclipse.jgit.transport.SshSessionFactory;
 import org.eclipse.jgit.transport.URIish;
 import org.eclipse.jgit.util.FS;
 import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.console.IConsole;
 import org.eclipse.ui.console.IConsoleConstants;
@@ -27,6 +29,7 @@
 import org.eclipse.ui.views.IViewRegistry;
 import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.ui.IServerModule;
+import org.jboss.tools.common.ui.WizardUtils;
 import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
 import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
 import org.jboss.tools.openshift.express.internal.ui.console.ConsoleUtils;
@@ -34,13 +37,13 @@
 import org.jboss.tools.openshift.express.internal.ui.console.TailServerLogWorker;
 import org.jboss.tools.openshift.express.internal.ui.messages.OpenShiftExpressUIMessages;
 import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
+import org.jboss.tools.openshift.express.internal.ui.wizard.TailFilesWizard;
 
 import com.jcraft.jsch.JSch;
 import com.jcraft.jsch.JSchException;
 import com.openshift.client.IApplication;
 import com.openshift.client.OpenShiftException;
 import com.openshift.client.OpenShiftSSHOperationException;
-import com.openshift.client.utils.Base64Coder;
 
 /**
  * The action associated with the "Show In>Remote Console" menu item.
@@ -94,13 +97,11 @@
 
 	private void run(final IApplication application) throws OpenShiftException, MalformedURLException {
 		final String host = new URL(application.getApplicationUrl()).getHost();
-		final String appId = application.getUUID();
 		final String appName = application.getName();
 		final MessageConsole console = ConsoleUtils.findMessageConsole(createConsoleId(appName, host));
 		ConsoleUtils.displayConsoleView(console);
-		console.newMessageStream().println("Loading....");
 		if (!this.consoleWorkers.containsKey(console.getName())) {
-			launchTailServerJob(host, appId, appName, console);
+			launchTailServerJob(host, application, console);
 		}
 	}
 
@@ -111,33 +112,37 @@
 	private void run(final IServer server) {
 		if (ExpressServerUtils.isOpenShiftRuntime(server) || ExpressServerUtils.isInOpenshiftBehaviourMode(server)) {
 			final String host = server.getHost();
-			final String appId = ExpressServerUtils.getExpressApplicationId(server);
-			final String appName = ExpressServerUtils.getExpressApplicationName(server);
-			final MessageConsole console = ConsoleUtils.findMessageConsole(createConsoleId(appName, host));
+			final IApplication app = ExpressServerUtils.getApplication(server);
+			final MessageConsole console = ConsoleUtils.findMessageConsole(createConsoleId(app.getName(), host));
 			ConsoleUtils.displayConsoleView(console);
 			console.newMessageStream().println("Loading....");
 			if (!this.consoleWorkers.containsKey(console.getName())) {
-				launchTailServerJob(host, appId, appName, console);
+				launchTailServerJob(host, app, console);
 			}
 		}
 	}
 
-	private void launchTailServerJob(final String host, final String appId, final String appName,
+	private void launchTailServerJob(final String host, final IApplication app,
 			final MessageConsole console) {
-		new Job("Launching Tail Server Operation") {
-			protected IStatus run(IProgressMonitor monitor) {
-				try {
-					final TailServerLogWorker tailServerLogWorker = startTailProcess(host, appId, appName, console);
-					consoleWorkers.put(console.getName(), tailServerLogWorker);
-					Thread thread = new Thread(tailServerLogWorker);
-					thread.start();
-				} catch (IOException e) {
-					return OpenShiftUIActivator.createErrorStatus(NLS.bind("Failed to tail files for application ''{0}''", appName), e);
+		final TailFilesWizard wizard = new TailFilesWizard(app);
+		if (WizardUtils.openWizardDialog(
+				wizard, Display.getCurrent().getActiveShell()) == Window.OK) {
+			console.newMessageStream().println("Loading....");
+			new Job("Launching Tail Server Operation") {
+				protected IStatus run(IProgressMonitor monitor) {
+					try {
+						final TailServerLogWorker tailServerLogWorker = startTailProcess(host, app.getUUID(), app.getName(), wizard.getFilePattern(), console);
+						consoleWorkers.put(console.getName(), tailServerLogWorker);
+						Thread thread = new Thread(tailServerLogWorker);
+						thread.start();
+					} catch (IOException e) {
+						return OpenShiftUIActivator.createErrorStatus(NLS.bind("Failed to tail files for application ''{0}''", app.getName()), e);
+					}
+					return Status.OK_STATUS;
 				}
-				return Status.OK_STATUS;
-			}
-
-		}.schedule();
+	
+			}.schedule();
+		}
 	}
 
 	/**
@@ -145,10 +150,10 @@
 	 * JSch) to open a connection AND execute a command in a single invocation. The connection establishement requires
 	 * an SSH key, and the passphrase is prompted to the user if necessary.
 	 * 
-	 * @param server
-	 *            the server adapter on which the action is performed
-	 * @param console
-	 *            the console into which the tail should be writtent
+	 * @param host the remote host to connect to
+	 * @param appId the application id, used as the user to establish the ssh connexion
+	 * @param appName the application name
+	 * @param filePattern the file pattern to use in the tail command
 	 * @return the Worker that encapsulate the established RemoteSession, the tail Process and the output console
 	 * @throws OpenShiftSSHOperationException 
 	 * @throws JSchException
@@ -157,8 +162,7 @@
 	 *             in case of underlying exception
 	 */
 	private TailServerLogWorker startTailProcess(final String host, final String appId, final String appName,
-			final MessageConsole console) throws IOException {
-		final String logFilePath = appName + "/logs/*.log";
+			final String filePattern, final MessageConsole console) throws IOException {
 		final String options = "-f -n 100";
 
 		JSch.setLogger(new JschToEclipseLogger());
@@ -170,7 +174,7 @@
 		// the rhc-tail-files command template
 		// ssh_cmd =
 		// "ssh -t #{app_uuid}@#{app}-#{namespace}.#{rhc_domain} 'tail#{opt['opts'] ? ' --opts ' + Base64::encode64(opt['opts']).chomp : ''} #{file_glob}'"
-		final String command = buildCommand(logFilePath, options);
+		final String command = buildCommand(filePattern, options);
 		Process process = remoteSession.exec(command, 0);
 		return new TailServerLogWorker(console, process, remoteSession);
 	}
@@ -185,10 +189,12 @@
 	 */
 	private String buildCommand(final String filePath, final String options) throws UnsupportedEncodingException {
 		StringBuilder commandBuilder = new StringBuilder("tail ");
+		// ignored for now,the options are now part of the filePath, given by the user in the TailFilesWizard
+		/*  
 		if (options != null && !options.isEmpty()) {
 			final String opts = new String(Base64Coder.encode(options.getBytes()));
 			commandBuilder.append("--opts ").append(opts).append(" ");
-		}
+		}*/
 		commandBuilder.append(filePath);
 		final String command = commandBuilder.toString();
 		Logger.debug("ssh command to execute: " + command);
@@ -236,4 +242,4 @@
 
 	}
 
-}
+}
\ No newline at end of file
