编写一个用于记录程序执行过程中产生的过程信息的 Logger 类。
1) 这个类有一个公共的 log 方法, 这个方法接受一个字符串作为参数, 然后将这个字符串信息按照如下的格式:当前日期和时间 + 需要记录的信息
[2016-10-20 12:20:15] This is a message!
添加到一个名为 log.txt 的文本文件中。
2) 这个类有一个公共的 showLog()方法, 这个方法不接受参数, 它可以读取 log.txt文件中的内容, 并将内容使用打印输出。
3) 创建一个 Record 类, 让其实现 Runnable 接口, 这个 Record 有一个 Logger 类型的成员 变量, 并且可以使用构造函数在创建 Record 的对象时, 初始化这个
Logger 类型的成员变量。 并且当将其放入一个线程中执行时, 每隔 2 秒钟就调用
Logger 的 log 方法记录一条日志信息。
4) 创建一个 ShowInfo 类, 让其实现 Runnable 接口, 这个 ShowInfo 类也有一个
Logger 类型的成员变量, 并且可以使用构造函数在创建 ShowInfo 的对象时, 初始化这个 Logger 类型的变量。 并且将这个对象放入一个线程中执行时, 每隔 5秒钟就调用 Logger 的 showLog()方法显式一次日志信息。
5) 在 Logger 类中编写一个主函数, 然后在主函数中创建一个 Logger 类的实例,并且分别创建一个 Record 对象和一个 ShowInfo 对象, 将这两个对象分别放入一个线程中执行。 请确保这整个过程是县城安全的。
1) 这个类有一个公共的 log 方法, 这个方法接受一个字符串作为参数, 然后将这个字符串信息按照如下的格式:当前日期和时间 + 需要记录的信息
[2016-10-20 12:20:15] This is a message!
添加到一个名为 log.txt 的文本文件中。
2) 这个类有一个公共的 showLog()方法, 这个方法不接受参数, 它可以读取 log.txt文件中的内容, 并将内容使用打印输出。
3) 创建一个 Record 类, 让其实现 Runnable 接口, 这个 Record 有一个 Logger 类型的成员 变量, 并且可以使用构造函数在创建 Record 的对象时, 初始化这个
Logger 类型的成员变量。 并且当将其放入一个线程中执行时, 每隔 2 秒钟就调用
Logger 的 log 方法记录一条日志信息。
4) 创建一个 ShowInfo 类, 让其实现 Runnable 接口, 这个 ShowInfo 类也有一个
Logger 类型的成员变量, 并且可以使用构造函数在创建 ShowInfo 的对象时, 初始化这个 Logger 类型的变量。 并且将这个对象放入一个线程中执行时, 每隔 5秒钟就调用 Logger 的 showLog()方法显式一次日志信息。
5) 在 Logger 类中编写一个主函数, 然后在主函数中创建一个 Logger 类的实例,并且分别创建一个 Record 对象和一个 ShowInfo 对象, 将这两个对象分别放入一个线程中执行。 请确保这整个过程是县城安全的。