开灯关灯游戏设计,在日志窗口打印 Service状态信息。
时间: 2023-12-14 07:38:00 浏览: 76
好的,这里是一个简单的开灯关灯游戏设计,并在日志窗口打印服务状态信息的示例代码:
```python
import logging
# 创建日志记录器
logger = logging.getLogger("light_game")
logger.setLevel(logging.INFO)
# 创建控制台处理程序
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
# 创建日志格式器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
# 将处理程序添加到记录器
logger.addHandler(console_handler)
# 模拟灯泡
class LightBulb:
def __init__(self):
self._is_on = False
def turn_on(self):
self._is_on = True
logger.info("灯泡已打开")
def turn_off(self):
self._is_on = False
logger.info("灯泡已关闭")
# 游戏类
class LightGame:
def __init__(self):
self._light_bulb = LightBulb()
self._is_running = False
def start(self):
self._is_running = True
logger.info("游戏已开始")
def stop(self):
self._is_running = False
logger.info("游戏已停止")
def toggle_light(self):
if self._is_running:
if self._light_bulb._is_on:
self._light_bulb.turn_off()
else:
self._light_bulb.turn_on()
else:
logger.warning("请先启动游戏")
# 测试游戏
game = LightGame()
game.toggle_light() # 输出警告信息:请先启动游戏
game.start() # 输出状态信息:游戏已开始
game.toggle_light() # 输出信息:灯泡已打开
game.toggle_light() # 输出信息:灯泡已关闭
game.stop() # 输出状态信息:游戏已停止
```
在上面的代码中,我们使用 Python 的 logging 模块创建了一个名为 "light_game" 的日志记录器,并将日志级别设置为 INFO。然后,我们创建了一个控制台处理程序,将其日志级别也设置为 INFO,并将其添加到记录器。接下来,我们创建了一个 LightBulb 类来模拟灯泡,并在其中定义了打开和关闭灯泡的方法。最后,我们创建了一个 LightGame 类来管理游戏,并在其中定义了启动、停止和切换灯泡状态的方法。在游戏类中,我们使用记录器来输出服务状态信息,例如游戏已开始、游戏已停止、灯泡已打开和灯泡已关闭等。
在测试游戏时,我们首先尝试切换灯泡状态,但此时游戏尚未启动,因此会输出警告信息。然后,我们启动游戏并切换灯泡状态,此时会输出灯泡已打开的信息。接着,我们再次切换灯泡状态,此时会输出灯泡已关闭的信息。最后,我们停止游戏,并输出游戏已停止的信息。所有的状态信息都会显示在日志窗口中。