Có, điều đó là có thể.
Đầu tiên tạo một interfase với tất cả các phương pháp đăng nhập của bạn:
public interface ILogger
{
void Write(string message);
// And much more methods.
}
Bây giờ tạo ra hai trường hợp, một trường hợp giả (cho phép gọi nó là DummyLogger
), và một trường hợp mà sẽ gửi tin nhắn của nó để Log4Net (Log4NetLogger
).
Để kết thúc, tạo ra một lớp nhà máy:
static public class LogFactory
{
static public ILogger CreateLogger()
{
if (/*Check if Log4Net is available*/)
return new Log4NetLogger();
else
return new DummyLogger();
}
}
Bạn có thể kiểm tra xem Log4Net có sẵn bằng cách đơn giản kiểm tra nếu tập tin là trong bin-thư mục của bạn. Một cái gì đó như:
File.Exists(AppDomain.CurrentDomain.BaseDirectory + "Log4Net.dll")
Nhưng tôi có thể tưởng tượng bạn muốn thực hiện các kiểm tra khác, như thể nó tồn tại trong GAC hay bất kỳ thứ gì.
Bây giờ bạn có thể sử dụng máy của bạn để tạo logger của bạn và "ghi" thông điệp đến các bản ghi:
ILogger logger = LoggerFactory.CreateLogger();
logger.Write("I am logging something!");
Nguồn
2013-04-29 12:17:38
Làm cho nó một plugin. Xem [MEF] (http://mef.codeplex.com/). – Oded
300kb? Không có gì, gửi nó đi. –
@SteveWellens Không có gì? Các exe chỉ có 15kb và không cần phải được cài đặt. –