2011-02-01 22 views
8

Tôi đã thử khoảng 2 tuần để nhận thư viện ghi nhật ký để làm việc. Tôi đã thử Log4cxx, Log4cpp, log4cplus và boost.log. Vấn đề không phải là không ai trong số này làm việc cho tôi, đó là tôi không thể tìm ra cách để làm cho họ làm việc cả. Tôi thực sự muốn sử dụng log4cxx kể từ khi tôi đang làm việc với log4j/logback tại nơi làm việc, nhưng tôi đã không thể nhận được bất kỳ thư viện nào dựa trên log4j để xây dựng. Tôi đã có thể xây dựng và sử dụng thư viện tăng cường, nhưng boost.log mang lại cho tôi tất cả các loại lỗi liên kết không có vấn đề gì tôi cố gắng. Nếu bất cứ ai có thể hướng dẫn tôi đến một hướng dẫn từng bước để có được một trong những thư viện này làm việc, tôi sẽ đánh giá cao nó. Ngoài ra, tôi đang sử dụng nhật thực như IDE của tôi nếu vấn đề đó.Cài đặt Thư viện Đăng nhập C++

+1

Bạn đang sử dụng hệ điều hành nào? Ngoài ra, hãy chắc chắn biên dịch các thư viện đầu tiên và sau đó lấy các tệp tiêu đề để đưa vào dự án của bạn (việc triển khai sẽ được biên dịch thành các thư viện ** một ** thời gian để bạn không phải biên dịch lại thư viện lớn nhiều lần) – RageD

+0

Tôi đang sử dụng Windows 7. Tôi không chắc chắn những gì bạn có nghĩa là về biên dịch và sau đó lấy các tập tin tiêu đề. Xin lỗi, tôi mới sử dụng thư viện của bên thứ ba. Để tăng ít nhất tôi chỉ cần thêm thư mục gốc tăng như là một đường dẫn bao gồm và sau đó sử dụng một chỉ thị bao gồm cho mỗi tập tin mà tôi cần. – Shenlong55

Trả lời

0

Tôi muốn giới thiệu . Phải mất một thời gian để xây dựng mọi thứ khi bạn tải xuống lần đầu tiên - gõ make build test và đi ăn trưa - và bạn phải chọn luồng đầu ra (Pantheios gọi họ là "kết thúc sau") tại thời điểm liên kết, nhưng để mã hóa, nó thực sự đơn giản, ví dụ:

std::string name; 
int age; 

pantheios::log_DEBUG("name=", name, " age=", pantheios::integer(age)); 

Nó được thiết kế từ mặt đất lên cho tốc độ - tuổi sẽ không được chuyển đổi thành một chuỗi trừ khi "DEBUG" mức độ được bật - và mạnh mẽ - đó là lý do bạn không thể chuyển trực tiếp các loại cơ bản và sử dụng "trình chèn" (ví dụ: pantheios::integer). Xem this recent blog post bởi tác giả Pantheios 'để biết thêm thông tin.

1

Bạn đã bao giờ làm việc này chưa? Log4cxx chắc chắn hoạt động trên Win7. Có thể bạn có thể đăng một số lỗi xây dựng của mình. Chỉ cần đoán, có lẽ bạn đã không cấu hình dự án eclipse của bạn để liên kết với một lib tĩnh log4cxx.

1

Boost.Log hoạt động tốt cho tôi (Linux và Windows). Nó không phải là một thư viện chỉ tiêu đề, có một phần biên dịch mà bạn cần phải liên kết với. Xem hướng dẫn here.

Nó cũng phụ thuộc vào khác, phi tiêu đề, Tăng thư viện:

Thư viện khai thác gỗ sử dụng một số thư viện Boost khác mà cần tòa nhà quá. Đây là Boost.Filesystem, Boost.System, Boost.DateTime, Boost.Thread và Boost.Regex. Tham khảo tài liệu của họ để được hướng dẫn chi tiết về quy trình xây dựng.

Tùy thuộc vào nền tảng của bạn có thể có các phiên bản được tạo sẵn của thư viện Boost. Nếu không, hãy tự xây dựng nó thật đơn giản nếu bạn làm theo hướng dẫn. Nếu bạn gặp khó khăn khi cập nhật câu hỏi của mình với chính xác nơi bạn gặp khó khăn và những gì bạn đang thấy.

0

Tôi đã quản lý để log4cxx hoạt động, điều này được thực hiện trong Visual Studio 2013 chạy trên Windows 7 OS.

này Sau đây là những gì tôi đã làm, từng bước:

Tải gói ZIP log4cxx trích xuất nội dung của nó, http://logging.apache.org/log4cxx/download.html

Tải tháng tư và tháng tư-util gói ZIP, http://apr.apache.org/download.cgi

Sau đó,

  1. trích xuất thủ công mã zip này apr-1.2.11-win32-src.zip ( thư mục được trích xuất phải được đặt tên là 'apr', nếu nó không được đổi tên theo cách thủ công )
  2. giải nén thủ công zip apr-util-1.2.10-win32-src.zip này ( thư mục được trích xuất phải được đặt tên 'Tháng Tư-util', nếu nó không phải là bằng tay đổi tên nó)
  3. mở một dấu nhắc lệnh và chạy như sau: cd apache-log4cxx-0.10.0 configure ( này sẽ thực hiện configure.bat)

Chúng tôi sẽ cần vô hiệu hóa để sử dụng hỗ trợ ICONV và LDAP APR. Để làm như vậy, chúng tôi sẽ thêm các tệp sau theo cách thủ công:

  1. Mở apr-util \ include \ apu.hw. Tìm dòng bắt đầu bằng “#define APU_HAVE_APR_ICONV”. Thay đổi giá trị thành 0 và lưu.
  2. Mở apr-util \ include \ apr_ldap.hw. Tìm dòng bắt đầu bằng “#define APR_HAS_LDAP” Thay đổi giá trị thành 0 và lưu.

Chúng tôi cần tạo log4cxx.dll, để chuyển đổi * .dsw thành * .cxproj.

  1. Khởi chạy Visual Studio 2013 và mở log4cxx.dsw.
  2. VS sẽ hỏi bạn có muốn chuyển đổi mọi thứ không. Chỉ cần nhấp vào Có. Có thể có một số cảnh báo trong báo cáo di chuyển, nhưng không có gì nên ngăn chặn giải pháp mở.

> Dự án xml, apr và apr-util nên xây dựng thành công.

Nếu bạn cố gắng biên dịch dự án log4cxx thì hầu hết các lỗi có thể không thành công với hàng trăm lỗi. Điều này là do một lỗi trong VC++ mà có thể được làm việc xung quanh.

  1. Di chuyển tất cả các macro ra bên ngoài (ở trên) lớp mà chúng đang ở. Macro LOG4CXX_LIST_DEF được sử dụng để xác định các lớp. Tất cả các macro được báo cáo trong lỗi C2252 sẽ cần di chuyển ra khỏi bất kỳ lớp nào. Điều này cũng có thể bao gồm các định nghĩa chuyển động được sử dụng trong macro.
  2. Tiếp theo, thay đổi tất cả LoggingEvent :: keyset để keyset (điều này không còn được lồng trong một lớp cha mẹ)

> Sau này, các dự án log4cxx bây giờ sẽ biên dịch thành công trên máy tính của bạn.