Bird
Raised Fist0
Supabasecloud~30 mins

Monitoring and logging in Supabase - Mini Project: Build & Apply

Choose your learning style10 modes available
Monitoring and Logging with Supabase
📖 Scenario: You are managing a small web app that uses Supabase as its backend. You want to keep track of user activity and errors by setting up simple monitoring and logging. This will help you understand how users interact with your app and quickly find problems.
🎯 Goal: Build a basic monitoring and logging setup using Supabase. You will create a table to store logs, add a configuration for log levels, write a function to insert logs based on the level, and finally display the logs.
📋 What You'll Learn
Create a Supabase table called logs with columns id (auto-increment), level (text), message (text), and timestamp (timestamp with default current time).
Add a variable log_level to control which logs to record (e.g., 'INFO', 'ERROR').
Write a function add_log(level, message) that inserts a log into the logs table only if the log's level is equal or higher priority than log_level.
Query and print all logs from the logs table ordered by timestamp.
💡 Why This Matters
🌍 Real World
Monitoring and logging help developers track app behavior and quickly find issues. Supabase makes it easy to store and query logs in a database.
💼 Career
Understanding how to set up logging and monitoring is essential for DevOps roles and backend development to maintain reliable applications.
Progress0 / 4 steps
1
Create the logs table in Supabase
Write the SQL command to create a table called logs with columns: id as an auto-incrementing primary key, level as text, message as text, and timestamp as a timestamp with default value as the current time.
Supabase
Hint

Use SERIAL PRIMARY KEY for auto-increment id. Use CURRENT_TIMESTAMP as default for timestamp.

2
Add a log_level configuration variable
In your Supabase client code, create a variable called log_level and set it to the string 'INFO' to control the minimum level of logs to record.
Supabase
Hint

Just assign the string 'INFO' to a variable named log_level.

3
Write the add_log(level, message) function
Write a function called add_log that takes level and message as parameters. It should insert a new row into the logs table only if the level is equal or higher priority than log_level. Use the priority order: ERROR > WARN > INFO. Use Supabase client methods to insert the log.
Supabase
Hint

Use a dictionary to map log levels to numbers for comparison. Insert only if the level is high enough.

4
Query and print all logs ordered by timestamp
Write code to query all rows from the logs table ordered by timestamp ascending. Then print the list of logs.
Supabase
Hint

Use supabase.table('logs').select('*').order('timestamp', desc=False).execute() to get logs. Print the data attribute.

Practice

(1/5)
1. What is the main purpose of monitoring and logging in Supabase?
easy
A. To keep your app healthy and fix problems quickly
B. To increase the app's loading speed
C. To add new features automatically
D. To change the app's user interface

Solution

  1. Step 1: Understand monitoring and logging roles

    Monitoring and logging track app behavior and errors to maintain health.
  2. Step 2: Identify the main goal

    The goal is to detect and fix problems quickly to keep the app running well.
  3. Final Answer:

    To keep your app healthy and fix problems quickly -> Option A
  4. Quick Check:

    Monitoring and logging = keep app healthy [OK]
Hint: Monitoring = health check; logging = problem records [OK]
Common Mistakes:
  • Confusing monitoring with adding features
  • Thinking logging changes UI
  • Believing monitoring speeds up app
2. Which of the following is the correct command to view logs for a Supabase project with ref abc123 for the last 1 hour?
easy
A. supabase logs --id abc123 --time 1h
B. supabase log --project abc123 --last 1h
C. supabase logs --project-ref abc123 --since 1h
D. supabase logs -p abc123 -t 1hour

Solution

  1. Step 1: Recall the correct syntax for logs command

    The correct command uses supabase logs with --project-ref and --since flags.
  2. Step 2: Match the options with correct flags

    supabase logs --project-ref abc123 --since 1h matches the correct syntax: supabase logs --project-ref abc123 --since 1h.
  3. Final Answer:

    supabase logs --project-ref abc123 --since 1h -> Option C
  4. Quick Check:

    Correct flags = --project-ref and --since [OK]
Hint: Use --project-ref and --since flags with supabase logs [OK]
Common Mistakes:
  • Using 'log' instead of 'logs'
  • Wrong flag names like --id or --last
  • Incorrect time format like '1hour'
3. What will be the output of the command supabase logs --project-ref xyz789 --since 30m?
medium
A. Shows logs from all projects for the last 30 minutes
B. Shows logs from project xyz789 for the last 30 minutes
C. Shows logs from project xyz789 for the last 30 hours
D. Returns an error because --since requires seconds

Solution

  1. Step 1: Understand the command flags

    The --project-ref xyz789 specifies the project, and --since 30m means last 30 minutes.
  2. Step 2: Interpret the output meaning

    The command outputs logs only for project xyz789 from the last 30 minutes.
  3. Final Answer:

    Shows logs from project xyz789 for the last 30 minutes -> Option B
  4. Quick Check:

    --project-ref + --since 30m = last 30 minutes logs [OK]
Hint: Since 30m means last 30 minutes logs [OK]
Common Mistakes:
  • Thinking it shows logs for all projects
  • Confusing 30m with 30 hours
  • Assuming --since needs seconds only
4. You ran supabase logs --project-ref myproj --since 2h but got no output. What is the most likely reason?
medium
A. The project ref is incorrect or does not exist
B. The command requires --until flag as well
C. Logs are only available for the last 1 hour
D. The --since flag must be in seconds, not hours

Solution

  1. Step 1: Check project ref validity

    If the project ref is wrong or missing, no logs will show.
  2. Step 2: Verify command flags and log availability

    The command syntax is correct; logs are available beyond 1 hour; --since accepts hours.
  3. Final Answer:

    The project ref is incorrect or does not exist -> Option A
  4. Quick Check:

    No output usually means wrong project ref [OK]
Hint: Check project ref first if logs show empty [OK]
Common Mistakes:
  • Thinking --until is mandatory
  • Assuming logs only keep 1 hour
  • Believing --since needs seconds only
5. You want to set up alerts to notify you when errors appear in your Supabase logs. Which approach is best?
hard
A. Regularly run supabase logs manually and check for errors
B. Restart the Supabase project daily to clear logs
C. Ignore logs and fix errors only when users report them
D. Use a third-party monitoring tool connected to Supabase logs with alert rules

Solution

  1. Step 1: Understand alerting needs

    Manual checks are slow and error-prone; ignoring logs delays fixes.
  2. Step 2: Choose best practice for alerts

    Using a monitoring tool with alert rules automates error detection and notification.
  3. Final Answer:

    Use a third-party monitoring tool connected to Supabase logs with alert rules -> Option D
  4. Quick Check:

    Automated alerts = faster fixes [OK]
Hint: Automate alerts with monitoring tools, not manual checks [OK]
Common Mistakes:
  • Relying on manual log checks
  • Ignoring logs until problems grow
  • Restarting project clears logs but not errors
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard