Katana + log4netによるWeb APIのロギング
ASP.NET MVCでRails::Rack::Logger
みたいなことできないかなという話。Katana + log4netでの実装とtipsについて以下述べていきます。
tl;dr
- Katanaを使ってログ用のカスタムミドルウェアを作る
- リクエストからの一連の処理を一意に識別するためにGUIDを使う
ASP.NETのミドルウェア
ASP.NETにRubyでいうRackのようなものであるOwinが搭載されました。
OWINは Open Web Interface for .Netの略で、 Webサーバに依存しないWebアプリを実現するための規格のようです。 この規格を満した開発を実現するため、Microsoftが複数コンポーネントを提供しています。 このコンポーネント群をKatana Projectと呼んでいます。
(via yamamotoさん@社内Advent Calendar)
Owin&KatanaによりASP.NETでもRackミドルウェアのようなものが差し込め、認証やロギング周りの実装がいい感じにできるようになりました。
続きを読む社内アドベントカレンダーradventについて
社内用アドベントカレンダーradventを作ってから色んなことが起きたのでまとめておきます。
tl;dr
- きっかけは社内SNSから
- 実際に作って運営してみてわかったこと
- 軽く発表した
- 紹介された
radventとは
nanonanomachine/radvent · GitHub
Qiita様のアドベントカレンダーを社内のイントラネットでできるようにしたRuby on Rails製のアプリです。markdown形式で記事を投稿することができ、リアルタイムプレビューや画像アップロード機能などがあります。Qiita様と違い、日付が過ぎると登録記事が自動公開されます。
続きを読むRailsのparamsはString
備忘録として。
はまった、というか初めて気づきました。タイトル通りRailsのparams
はString
なんですね。
事の経緯
以下のようなコントローラーがあったとします。
class ItemsController < ApplicationController def new @date = params[:date] end end
それに対するspecが以下
require 'rails_helper' RSpec.describe ItemsController, :type => :controller do describe "GET #new" do it "assigns the requsted date to @date" do get :new, date: 1 expect(assigns(:date)).to eq 1 end end end
結果がこちら
ナンデString
!?
そういうもんだった
つまり、
params[:hoge]
は文字列で帰ってくるfind
メソッドは文字列でも指定することができる
ので普段あまり気づかなかったのですね。rspec書き始めて初めて気づきました。勉強になりました。
Herokuでnpmのキャッシュにはまった
先週末Heroku + Node.jsではまったのでメモしておきます。
tl;dr
- npmのdependenciesにgitレポジトリを指定したらHerokuのキャッシュではまった
- heroku/heroku-repoいれたら快適Heroku生活できるようになった
はじめに
こちらでは主にRuby on RailsやASP.NET MVCについて話していこうと思います。
よろしくお願いします。