プログラミングメモ帳

プログラミングで躓いた部分を中心としたIT土方的メモ。

Log4j2 で日付ベースのログローテーション

Log4j2 で吐いたログに対して日付ベースでのログローテーションと時限削除をしたいとき、 logrorated 等のローテーション管理ソフトウェアに任せると、Log4j2 側がファイルを見失ってしまうので、ローテーションを Log4j2 側で実現してやる。 <Appenders> <RollingFile name="hoge" fileName="logs/hoge.log" filePattern="logs/hoge.%d{yyyy-MM-dd}.log"> <PatternLayout pattern="%m%n" /> <TimeBasedTriggeringPolicy /> <…</timebasedtriggeringpolicy></patternlayout></rollingfile></appenders>

ELB 配下に Django アプリケーションを置く時の ALLOWED_HOSTS 設定

Django では settings.py の ALLOWED_HOSTS で指定したホスト名でのみアクセスを受け付けられる。 (確認してないけど、たぶん HTTP リクエストヘッダの Host を見ているとかだと思う) なので、ここにユーザからアクセスされる際に使われるドメイン名を書いて…

ModelFormを利用して生成されるHTMLフォーム内の要素のnameタグを変更する

Django で Model を利用して入力画面を作る際には ModelForm クラスを利用しますが、 Model のフィールド名と、投げられるリクエストの名前規則が一致しないことがあります。 リクエストを投げる側の動作を変更したくない(できない)場合、以下のように、Mode…

argparseでハイフン入りオプションを使う

前略、pythonのargparseは非常に便利です。 add_argument()の第一引数 name に対して--fooのような文字列を与えてやると、parse_args()で得られるオブジェクトに対して.fooでアクセスし値を取ってこれる、という便利な実装になっています。 具体的にはこうい…

XmlSlurper の出力時に tag0 名前空間が付かないようにする

XmlSlurper クラスを利用して XML ドキュメントを読み込んだあと、 いろいろ処理をしたあとに書き出してみたら <tag0:xxx> という名前空間になってしまって困る場合の対処法。 import groovy.xml.StreamingMarkupBuilder import groovy.xml.XmlUtil def doc = new XmlS</tag0:xxx>…

paint/paintComponentが呼ばれてないぞ?と思ったら

オーバーライドするとき、super() の呼び忘れがないかを確認する。 public class TestJPanel extends JPanel { public TestJPanel() { setBackground(Color.cyan); } protected void paintComponent(Graphics g) { super.paintComponent(g); // 背景を描く g…

ImportError: No module named PyQt4

brew install pyqtをしたあとに import PyQt4をしたら ImportError: No module named PyQt4と怒られてしまったときのメモ。 export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATHを.bashrcもしくは.bash_profileに追加すればOK。 $ python…

Segmentation fault: 11

PythonでOpenCVを使おうとして brew install opencvは成功したものの、 import cvをした場合にSegmentation fault: 11が出てしまった場合について。"which python"でパスを調べると、/usr/bin/pythonになっている場合は、 export PATH=/usr/local/bin:$PATH…