def initApp(): assert nonetrip.scheduler # Check if scheduler exists # Initialize logging loggingPath = os.path.join(LOG_FILE_DIR, "{time}.log") botLogger.add(loggingPath, enqueue=True, encoding="utf-8") # Initialize settings nonetrip.init(settings) nonetrip.load_plugins("plugins", "plugins") botLogger.info( f"The robot is currently configured as: {convertSettingsToDict()}") bot = nonetrip.get_bot() return bot.asgi
def init(): seconds_offset = time.localtime().tm_gmtoff local_utc = _format_offset(seconds_offset) if local_utc != 'UTC+8': logger.warning('当前时区不是东8区,请修改到正确的时区后再运行本程序') os._exit(0) kwargs = { 'superusers': config.SUPERUSERS, 'nickname': config.NICKNAME, 'command_start': config.COMMAND_START, 'command_sep': config.COMMAND_SEP, 'debug': config.DEBUG } nonebot.init(**kwargs) driver = nonebot.get_driver() driver.register_adapter('cqhttp', CQHTTPBot) config_ = driver.config config_.savedata = 'data/service' nonebot.load_builtin_plugins() nonebot.load_plugin("nonebot_plugin_apscheduler") nonebot.load_plugin('nonebot_plugin_rauthman') if config.DEBUG: nonebot.load_plugin('nonebot_plugin_docs') nonebot.load_plugin('nonebot_plugin_test') nonebot.load_plugins('cheru/plugin') logger.add(error_log_file, rotation='0:00', format=default_format, compression='zip', enqueue=True, backtrace=True, diagnose=True, level='ERROR')
from os import path import nonebot from nonebot.adapters.cqhttp import Bot from nonebot.log import default_format, logger nonebot.init() driver = nonebot.get_driver() driver.register_adapter('cqhttp', Bot) app = nonebot.get_asgi() nonebot.load_builtin_plugins() nonebot.load_plugin('nonebot_plugin_apscheduler') nonebot.load_plugins("src/plugins") # Modify some config / config depends on loaded configs # # config = nonebot.get_driver().config # do something... logger.add(path.join('log', "error.log"), rotation="00:00", retention='1 week', diagnose=False, level="ERROR", format=default_format, encoding='utf-8') if __name__ == "__main__": nonebot.run(app="bot:app")
import platform import os import time, datetime import nonebot from nonebot.adapters.cqhttp import Bot, Event from nonebot.adapters.cqhttp import MessageSegment as msg from nonebot.matcher import Matcher from nonebot import get_bots from nonebot.log import logger from christinaqqbot.utils.reply import get_random_reply from christinaqqbot.utils.time import get_beijing_time from .model import setu logger.add('log.log', retention='10 days') setu_tags = [ '萝莉', '黑丝', '白丝', '魅魔', '吸血鬼', '白毛', 'arknights', '原神', '碧蓝航线', '百合', '红瞳', '舰队Collection', 'JK', '巨乳' ] setu_api = nonebot.get_driver().config.setu_api def get_2_setu(tag='random') -> setu: if (tag == 'random'): tag = get_random_reply(setu_tags) try: api_url = setu_api + '/pixiv/search/{tag}/popular/0'.format(tag=tag) r = requests.get(url=api_url)
from nonebot.log import logger from sentry_sdk.integrations.logging import EventHandler, BreadcrumbHandler from .config import Config driver = get_driver() global_config = driver.config config = Config(**global_config.dict()) assert config.sentry_dsn, "Sentry DSN must provided!" sentry_sdk.init(**{ key[7:]: value for key, value in config.dict().items() if key != "sentry_environment" }, environment=config.sentry_environment or driver.env, default_integrations=False) class Filter: def __init__(self, level="INFO") -> None: self.level = level def __call__(self, record): levelno = logger.level(self.level).no return record["level"].no >= levelno logger.add(EventHandler("ERROR"), filter=Filter("ERROR")) logger.add(BreadcrumbHandler("INFO"), filter=Filter("INFO"))
import nonebot from nonebot.log import default_format, logger from nonebot.adapters.cqhttp import Bot as CQHTTPBot nonebot.init() app = nonebot.get_asgi() driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) nonebot.load_builtin_plugins() nonebot.load_plugin('nonebot_plugin_apscheduler') # nonebot.load_plugin('nonebot_plugin_songpicker2') nonebot.load_plugin('nonebot_plugin_picsearcher') nonebot.load_plugin('nonebot_plugin_biliav') nonebot.load_from_toml("pyproject.toml") logger.add("./logs/{time}.log", rotation="00:00", retention='1 week', enqueue=True, diagnose=False, level="SUCCESS", format=default_format, encoding='utf-8') if __name__ == "__main__": nonebot.run(app="__mp_main__:app")
driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) app = nonebot.get_asgi() # 添加额外的配置 config = nonebot.get_driver().config config.home_dir_path = Path().resolve() # 插件数据目录 config.data_dir_path = config.home_dir_path / 'data' # 自定义 logger from nonebot.log import default_format, logger logger.add(config.data_dir_path / 'logs' / 'error.log', rotation='5 MB', diagnose=False, level='ERROR', format=default_format) # 加载外部插件 nonebot.load_plugin("nonebot_plugin_apscheduler") nonebot.load_plugins("src/plugins") # nonebot.load_plugin("nonebot_plugin_sentry") # 加载开发环境插件 if config.debug: nonebot.load_plugin('nonebot_plugin_test') nonebot.load_plugin('nonebot_plugin_docs') # 加载自己的插件 nonebot.load_plugins('plugins') if __name__ == '__main__':
import os import nonebot from datetime import datetime from nonebot.adapters.cqhttp import Bot as CQHTTPBot from nonebot.log import logger, default_format # Custom logger log_info_name = f"{datetime.today().strftime('%Y%m%d-%H%M%S')}-INFO.log" log_error_name = f"{datetime.today().strftime('%Y%m%d-%H%M%S')}-ERROR.log" log_file_path = os.path.join(os.path.dirname(__file__), 'omega_miya', 'log') log_info_path = os.path.join(log_file_path, log_info_name) log_error_path = os.path.join(log_file_path, log_error_name) logger.add(log_info_path, rotation="00:00", diagnose=False, level="INFO", format=default_format, encoding='utf-8') logger.add(log_error_path, rotation="00:00", diagnose=False, level="ERROR", format=default_format, encoding='utf-8') # You can pass some keyword args config to init function nonebot.init() driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) nonebot.load_plugins("omega_miya/utils")
from pathlib import Path from nonebot.adapters.onebot.v11 import Adapter as OneBot_V11_Adapter from nonebot.log import logger, Filter, default_format log_name = 'nonebot.log' log_dir = Path('log') if not log_dir.exists(): log_dir.mkdir() log_path = log_dir / log_name filter = Filter() filter.level = 'INFO' logger.add(str(log_path), rotation='00:00', diagnose=False, filter=filter, format=default_format, encoding='utf-8') # You can pass some keyword args config to init function nonebot.init() app = nonebot.get_asgi() driver = nonebot.get_driver() driver.register_adapter(OneBot_V11_Adapter) nonebot.load_plugin('nonebot_plugin_apscheduler') nonebot.load_plugin('nonebot_plugin_chatrecorder') nonebot.load_plugin('nonebot_plugin_manager') nonebot.load_plugin('nonebot_plugin_alias') nonebot.load_plugin('nonebot_plugin_withdraw')
LOGGER_DIR = Path(".") / "ATRI" / "data" / "logs" LOGGER_DIR.parent.mkdir(exist_ok=True, parents=True) NOW_TIME = datetime.now().strftime("%Y%m%d-%H") log_format = ("\033[36mATRI\033[0m " "| <g>{time:MM-DD HH:mm:ss}</g> " "| <lvl>{level}</lvl> " "<c><u>{name}</u></c> >> " "{message}") logger.remove() logger.add( sys.stdout, level="DEBUG" if Config.BotSelfConfig.debug else "INFO", colorize=True, format=log_format, ) logger.add( LOGGER_DIR / "info" / f"{NOW_TIME}-INFO.log", rotation="10 MB", enqueue=True, level="INFO", encoding="utf-8", format=log_format, ) logger.add( LOGGER_DIR / "warning" / f"{NOW_TIME}-WARNING.log", rotation="10 MB",
'.' ) / 'logs' / 'error' / f"{datetime.datetime.now().strftime('%Y%m%d-%H%M%S')}-ERROR.log" nonebot.init(debug=bool(config['debug']), superusers=set(config['superusers']), nickname=set(config['nickname']), command_start=set(config['command_start']), command_sep=set(config['command_sep'])) app = nonebot.get_asgi() driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) nonebot.load_plugins('ATRI/plugins') logger.add(LOGGER_INFO_PATH, rotation='10 MB', diagnose=False, level='INFO', format=default_format) logger.add(LOGGER_ERROR_PATH, rotation='10 MB', diagnose=False, level='ERROR', format=default_format) if __name__ == "__main__": logger.info("Running ATRI...") nonebot.run(app='bot:app', host=config['host'], port=config['port'])
import nonebot from nonebot.adapters.cqhttp import Bot from nonebot.log import default_format, logger logger.add( "logs/error.log", rotation="00:00", retention="1 week", diagnose=False, level="ERROR", format=default_format, encoding="utf-8", ) nonebot.init() app = nonebot.get_asgi() driver = nonebot.get_driver() driver.register_adapter("cqhttp", Bot) nonebot.load_from_toml("pyproject.toml") # Modify some config / config depends on loaded configs # # config = driver.config # do something... if __name__ == "__main__": nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!")
_log_file = os.path.expanduser('./log/salmon.log') _error_log_file = os.path.expanduser('./log/error.log') _critical_log_file = os.path.expanduser('./log/critical.log') bot_filter = Filter() if configs.DEBUG: bot_filter.level = 'DEBUG' else: bot_filter.level = 'INFO' log_format = ("<g>{time:MM-DD HH:mm:ss}</g> " "[<lvl>{level}</lvl>] " "<c><u>{name}</u></c> | " "{message}") logger.remove() logger.add(sys.stdout, colorize=True, diagnose=False, filter=bot_filter, format=log_format) logger.add(_log_file, rotation='05:00', retention='3 days', level='INFO', encoding='utf-8') logger.add(_error_log_file, rotation='05:00', retention='7 days', level='ERROR', encoding='utf-8') logger.add(_critical_log_file, rotation='05:00', retention='10 days',
""" 使用这个模块中的logger以自动记录日志到指定文件 """ from pathlib import Path from nonebot.log import logger from .easy_setting import DEBUG logfolder = Path('./logs') if not logfolder.exists(): logfolder.mkdir() level = "DEBUG" if DEBUG else "WARNING" logger.add(logfolder / "{time:YYYY-MM-DD}.log", rotation="00:00", retention="1 days", encoding='utf-8', level=level) if __name__ == "__main__": logger.info('编码测试')
import os import sys sys.path.insert(0, os.path.abspath("..")) import nonebot from nonebot.log import logger, default_format # test custom log logger.add("error.log", rotation="00:00", diagnose=False, level="ERROR", format=default_format) nonebot.init(custom_config2="config on init") app = nonebot.get_asgi() # load builtin plugin nonebot.load_builtin_plugins() # load local plugins nonebot.load_plugins("test_plugins") print(nonebot.require("test_export")) # modify some config / config depends on loaded configs config = nonebot.get_driver().config config.custom_config3 = config.custom_config1 config.custom_config4 = "New custom config"
def __init__(self) -> None: self.level: Union[int, str] = "DEBUG" def __call__(self, record): module_name: str = record["name"] module = sys.modules.get(module_name) if module: module_name = getattr(module, "__module_name__", module_name) record["name"] = module_name.split(".")[0] levelno = (logger.level(self.level).no if isinstance(self.level, str) else self.level) nonebot_warning_level = logger.level("WARNING").no return (record["level"].no >= levelno if record["name"] != "nonebot" else record["level"].no >= nonebot_warning_level) if plugin_config.bison_filter_log: logger.remove() default_filter = Filter() logger.add( sys.stdout, colorize=True, diagnose=False, filter=default_filter, format=default_format, ) config = nonebot.get_driver().config logger.success("Muted info & success from nonebot") default_filter.level = (("DEBUG" if config.debug else "INFO") if config.log_level is None else config.log_level)
import nonebot from nonebot.adapters.cqhttp import Bot as CQHTTPBot from nonebot.log import logger nonebot.init() driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) # nonebot.load_builtin_plugins() nonebot.load_plugins("src/plugins") if __name__ == "__main__": nonebot.run() logger.add("file_1.log", rotation="4096 MB")
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import nonebot from nonebot.adapters.cqhttp import Bot as CQHTTPBot import os import nonebot from nonebot.adapters.cqhttp import Bot as CQHTTPBot from nonebot.log import logger, default_format log_root = "logs/" os.makedirs(log_root, exist_ok=True) logger.add(log_root + "{time:YYYYMMDD}.log", rotation="00:00", level="INFO") logger.add(log_root + "{time:YYYYMMDD}_error.log", rotation="00:00", level="ERROR") logger.add(log_root + "{time:YYYYMMDD}_debug.log", rotation="00:00", level="DEBUG") # You can pass some keyword args config to init function nonebot.init() app = nonebot.get_asgi() driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) nonebot.load_builtin_plugins() nonebot.load_plugins("src/plugins")