3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.jsで本番では console.logを出さないができるらしいのでやってみた

Last updated at Posted at 2024-09-28

TL;DR

  • next.config.js(mjs)で設定をすることで対応可能
  • ログレベルを変えて、console.log(), console.info(), console.warn(), console.error() それぞれについても確認してみた

まずはローカルでログ出力

ServerComponentだとターミナルのログに出力されるので、ClientComponentにする必要はあったが、下記の通り出力

スクリーンショット 2024-09-28 22.56.14.png

本番環境でログ出力確認

本番環境でのログ出力を制御するため、 next.config.js(mjs)を下記のように修正

next.config.js
const nextConfig = {
    compiler: {
        removeConsole: process.env.NODE_ENV === "production",
    }
};

module.exports = nextConfig;

修正後にVercelへデプロイ🚀
ログレベル関係なく全く出力されなくなりましたね 👀

スクリーンショット 2024-09-28 23.16.17.png

ログレベル単位では出力制御できるのか❓️

※ログレベル?がよくわからない人へ
  • console.log(): ログレベル関係なく一般的なログを出力
  • console.info(): 情報メッセージ。アプリケーションの正常な動作を示す。
  • console.warn(): 警告メッセージ。潜在的な問題を示す。
  • console.error(): エラーメッセージ。実際のエラーや例外を示す。

本番環境の場合のみ、エラーレベルのログのみを出力し、それ以外は全てのログを出す設定し、
修正後にVercelへデプロイ🚀

next.config.js
const nextConfig = {
    compiler: {
        removeConsole: process.env.NODE_ENV === "production"
        ? {
            exclude: ["error"],
          }
        : false,
    }
};

module.exports = nextConfig;

できましたね👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏

スクリーンショット 2024-09-28 23.39.34.png

まとめ

この設定を入れておけば本番環境で余計なログが出力されない状態にできる🙌
チーム開発をしてるときにも便利ですね👏

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?