📄 logscommand.java
字号:
/**************************************************************** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * * * Copyright 2008 Jun Li(SiChuan University, the School of * * Software Engineering). All rights reserved. * * * * Licensed to the JMS under one or more contributor license * * agreements. See the LICENCE file distributed with this * * work for additional information regarding copyright * * ownership. The JMS licenses this file you may not use this * * file except in compliance with the License. * * * * Unless required by applicable law or agreed to in writing, * * software distributed under the License is distributed on an * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * * KIND, either express or implied. See the License for the * * specific language governing permissions and limitations * * under the License. * ****************************************************************/package org.jpxx.mail.plugin.console.command;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import org.jpxx.mail.Constants;import org.jpxx.mail.Exception.ArgumentException;import org.jpxx.mail.Service.CommandHandler;import org.jpxx.mail.Service.Session;import org.jpxx.mail.plugin.console.ConsoleStates;/** * * This command manages logs file. * * Syntax: * LOGS <CRLF> * [String] * <CRLF>.<CRLF> * * The log data is terminated by a line containing only a period, that * is, the character sequence "<CRLF>.<CRLF>" . * * @author Jun Li * @version $Revision: 0.0.3 $, $Date: 2008/10/25 $ * @since JMS 0.0.3 */public class LogsCommand implements CommandHandler, ConsoleStates { /** * @see org.jpxx.mail.Service.CommandHandler#onCommand(Session session) * @param session session The Session of Server and client */ public void onCommand(Session session) { int state = session.getLastAction(); if (state == AUTHENTICATION || state == TRANSACTION) { session.setLastAction(TRANSACTION); String action = null; try { action = session.getCommandLine().getArgument(0).toUpperCase().trim(); } catch (ArgumentException ae) { } if (action == null || action.equals("")) { try { StringBuffer buffer = new StringBuffer(64); buffer.append(OK); buffer.append(" "); buffer.append("read log file."); session.writeResponse(buffer.toString()); File f = new File(Constants.LOG_FILE_PATH); BufferedReader br = new BufferedReader(new FileReader(f)); String line = br.readLine(); while (line != null) { session.writeResponse(line); line = br.readLine(); } session.writeResponse("."); } catch (FileNotFoundException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Log file not exist."); session.writeResponse(buffer.toString()); } catch (IOException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Log file read error."); session.writeResponse(buffer.toString()); } } else if (action.equals("CLR")) { try { File f = new File(Constants.LOG_FILE_PATH); BufferedWriter bw = new BufferedWriter(new FileWriter(f)); bw.write(""); bw.close(); StringBuffer buffer = new StringBuffer(64); buffer.append(OK); buffer.append(" "); buffer.append("Clear logs"); session.writeResponse(buffer.toString()); } catch (FileNotFoundException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Log file not exist."); session.writeResponse(buffer.toString()); } catch (IOException e) { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("Log file clear error."); session.writeResponse(buffer.toString()); } } } else { StringBuffer buffer = new StringBuffer(64); buffer.append(ERR); buffer.append(" "); buffer.append("LOGS not allowed here"); session.writeResponse(buffer.toString()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -