当前位置: 首页 > news >正文

php个人网站模板传媒公司属于什么行业类型

php个人网站模板,传媒公司属于什么行业类型,聚名网实名认证,杭州百度竞价推广公司前言 之前在自己开发一个软件的时候想着实现一个打印日志到控制台的功能#xff0c;网上找了一大堆资料实在晦涩#xff0c;不是看不懂就是运行一堆报错#xff0c;截止前两分钟刚用第二种方式实现了这个功能#xff0c;这也是咱 独立实现 解决问题的第一次网上找了一大堆资料实在晦涩不是看不懂就是运行一堆报错截止前两分钟刚用第二种方式实现了这个功能这也是咱 独立实现 解决问题的第一次之前都是参考别人的代码。本着互惠互利、博爱共享的开源精神我必须记录一下。 两种方式 这里的例子都用 JavaFX 的 TextArea 来实现你要换用别的当然可以Button、Label 都行你开心就好。 主要有两种方式 使用 org.apache.log4j.ConsoleAppender 这是 log4j 自带的一个输出源它会把日志输出到控制台我们只需要把日志从控制台搜集起来写到 TextArea 就 ok 了。自定义一个 Appender需要实现 log4j 的 AppenderSkeleton 接口实现三个方法。 1、ConsoleAppender 重定向 简简单单先写一个线程类 package com.lyh.utils;import java.io.IOException; import java.io.PipedReader; import java.io.PipedWriter; import java.io.Writer; import org.apache.log4j.Logger; import org.apache.log4j.Appender; import org.apache.log4j.WriterAppender;public abstract class LogAppender extends Thread{protected PipedReader reader;public LogAppender(String appenderName) throws IOException {Logger root Logger.getRootLogger();// 获取子记录器的输出源 Appender appender root.getAppender(appenderName);// 定义一个未连接的输入流管道reader new PipedReader();// 定义一个已连接的输出流管理并连接到readerWriter writer new PipedWriter(reader);// 设置 appender 输出流((WriterAppender) appender).setWriter(writer);} } 直接 copy 不要想为什么然后通过 Scanner 实现把控制台的数据写到 textArea 里 package com.lyh.utils;import javafx.application.Platform; import javafx.scene.control.TextArea; import java.io.IOException; import java.util.Scanner;public class CodeAreaLogAppender extends LogAppender {private TextArea textArea;private StringBuilder builder new StringBuilder();private int currentRow 0;public CodeAreaLogAppender(TextArea textArea) throws IOException {super(textArea);this.textArea textArea;}Overridepublic void run() {Scanner scanner new Scanner(reader);// 将扫描到的字符流显示在指定的TextArea上while (scanner.hasNextLine()) {try {// 非 UI 操作涉及到变量的不要放到 UI 线程去因为线程的运行不同步String line scanner.nextLine();Platform.runLater(()-{textArea.appendText(line\n);});} catch (Exception ex) {ex.printStackTrace();}}} } ok 大功告成 使用的时候直接 new CodeAreaLogAppender(textArea).start(); 2、自定义 Appender 第二种方式就更简洁了只需要实现 log4j 的 AppenderSkeleton 这个抽象类。重点是实现单例模式保证这个 textArea 和 MyLogAppender 类的实例唯一。 package com.lyh.utils;import javafx.application.Platform; import javafx.scene.control.TextArea; import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.Logger; import org.apache.log4j.spi.LoggingEvent;public class MyLogAppender extends AppenderSkeleton {private final static Logger logger Logger.getLogger(MyLogAppender.class);private static MyLogAppender appender;public static TextArea textArea new TextArea();public static MyLogAppender getInstance(){if (appender null) appender new MyLogAppender();return appender;}/*** 打印日志的核心方法* param loggingEvent*/Overrideprotected void append(LoggingEvent loggingEvent) {String message loggingEvent.getMessage().toString();Platform.runLater(()-{textArea.setText(message);});}/*** 释放资源*/Overridepublic void close() {// 不用就不需要实现}/*** 是否需要按照格式输出文本* return*/Overridepublic boolean requiresLayout() {return false;} }使用的时候 MyLogAppender.getInstance(); vBox.getChildren().add(MyLogAppender.textArea); 总结 设计模式还是很有必要了解的能帮助我们更好的理解 OOP 思想。
http://www.pierceye.com/news/711717/

相关文章:

  • 开发网站合作协议网站建设团购
  • 管理手机网站网站规划与建设重要性理解与体会
  • 小辰青岛网站建设自己怎么开网站
  • 天津市建设工程合同备案网站网站建设 开发 模板
  • 外贸网站建设公司报价jsp网站建设技术案例
  • 旅行社英文模板网站织梦 网站迁移
  • 北京网站开发不限年龄伊春建设银行网站
  • 通辽公司做网站网站常规seo优化步骤
  • 成都集团网站设计推荐夫唯seo系统培训
  • 服务器有了网站怎么做的零食进货渠道网
  • 网站建设的学习方法桔子建站
  • 公司网站开通长沙免费网站建站模板
  • 汕头手机建站模板建设工程合同司法解释一
  • 品牌网站建设基本流程中山外发加工网
  • 网站迁移教材xyz域名的网站有哪些
  • 茂名公司网站开发tp框架做视频网站
  • 专门做家教的网站优秀网站设计赏析
  • 美食网站的建设背景婚庆网站建设
  • 榆社网站建设销售新品牌如何推广
  • 网站制作的公司哪家比较好网页作图软件
  • 网站开发质保动态wordpress动态主题
  • 建公司网站设计网站公司百度后台登录
  • 响应式网站开发方法建设汽车行业网站
  • 51ppt模板免费下载网站浏览器下载大全免费下载
  • 阳西县建设局网站.net网站项目有哪些
  • 门户网站优化网站建立软件
  • 贵阳网站建设在哪里陕西省住房城乡建设部门户网站
  • 深圳网站建设799元起全包域名企业网站分为哪四类
  • 潍坊网站建设公司商城网站建设建站系统
  • 苏州区网站建设网站前台乱码