I think it's good to get him tied down, he's been excellent, a real threat every time he runs.
4 years may seem long but as Seth says there could be some clever Salary Cap management involved with giving him some security of a long term deal.
When does James Macdonall deal run out Id be extending that one pretty sharpish too.