Phoenix, cambiando nivel de log de una aplicación en ejecución

Para cambiar el nivel de log sin reiniciar la aplicación.

Iniciar Phoenix con elixir y agregar el argumento sname

elixir --sname myapp -S mix phx.server

Conectar a Phoenix with a terminal remota remsh

iex --sname baz --remsh myapp@${HOSTNAME}

Cambiar el nivel del log de Logger y del backend

iex(myapp@ecb1011caa1e)6> Logger.configure(level: :debug)
:ok
iex(myapp@ecb1011caa1e)5> Logger.configure_backend(:console, [level: :debug])
:ok

Desde ahora el nivel de log está en debug

15:21:07.521 [debug]...

References

  • https://christopherjmcclellan.wordpress.com/2018/06/02/how-to-change-elixir-log-levels-for-a-running-application/
  • https://hexdocs.pm/iex/IEx.html
  • https://hexdocs.pm/logger/Logger.html

Usando el git hook commit-msg con las id de issue

Hace algún tiempo escribí un post sobre los hook de git y su utilidad para automatizar tareas, hoy quiero mostrar un ejemplo que he estado usando los últimos días, el hook commit-msg para no olvidar agregar el id de issue en los commits.

Si utilizas github/gitlab y su sistema de issues, es una buena práctica asociar los commits a issues.

Si eres como yo probablemente muchas veces has olvidado agregar el id del issue en el commit, bueno para eso puedes usar el hook commit-msg, el cual se activa después que el mensaje de commit es generado y antes que el commit es agregado. (más detalles en Customizing Git - Git Hooks), con algo como esto

#!/bin/bash

MSG="$1"

if ! egrep -qE "#[0-9]+" "$MSG";then
    cat "$MSG"
    echo "Your commit message must contain some issue reference '#...'"
    exit 1
fi

https://gist.github.com/juanpabloaj/fe7b8203ed967488d22c004c13846cfa

Y cuando no quieras que el hook sea activado usa la opción

git commit --no-verify

Algunas ventajas de agregar los id en cada commit son cosas como: cuando vayas a crear un nuevo tag puedes saber cuantas issues agregaste desde el último tag (donde 1.0.1 representa el último tag creado), y revisar en github/gitlab el detalle de los issues.

git log --oneline 1.0.1..HEAD | grep \# | sed 's/.*\(\#[0-9]*\).*/\1/' | sort | uniq -c