Nextcloud 20のOCP\AppFramework\QueryException: Could not resolve logger!への対応
使用しているレンタルサーバーのCORESERVERのバージョンが上がってから、Nextcloud (NC) 20.0.7にアクセスできなくなってしまった。
以下のコマンドでエラーが出ている。
php74cli occ status
OCP\AppFramework\QueryException: Could not resolve logger! Class logger does not exist in /virtual/senooken/public_html/storage.senooken.jp/lib/private/AppFramework/Utility/SimpleContainer.php:115
調べたところ、「[Bug]: OCP\AppFramework\QueryException: Could not resolve logger! Class logger does not exist Update failed · Issue #31512 · nextcloud/server」のやりとりで解決した。
エラーが起きているlib/private/AppFramework/Utility/SimpleContainer.php
にエラーを回避するための条件分を以下のように追加すればいい。
public function resolve($name) {
+ if ($name == 'logger') { $name = 'OC\Log\PsrLoggerAdapter'; }
$baseMsg = 'Could not resolve ' . $name . '!';
おそらく、システムのバージョンアップに伴い、PHPのログ関係のライブラリーが欠如したりしたのだと思われる。
ひとまず解決した。NC 20はEOLになっているので、バージョンを上げて解決しないか確認する。NC 21.0.9では発生しなかった。途中でバグ修正が入ったのだろう。
ひとまず動作するようになってよかった。